In [1]:
# getting OAuth access token
# acquire credential from https://platform.here.com/admin/apps/

import binascii  # To convert data into ASCII
import hashlib  # To generate SHA256 digest
import hmac  # To implement HMAC algorithm
import json
import time  # To generate the OAuth timestamp
import urllib.parse  # To URLencode the parameter string
from base64 import b64encode  # To encode binary data into Base64

import requests  # To make HTTP requests


def create_parameter_string(grant_type, oauth_consumer_key, oauth_nonce, oauth_signature_method, oauth_timestamp,
                            oauth_version):
    parameter_string = ''
    parameter_string = parameter_string + 'grant_type=' + grant_type
    parameter_string = parameter_string + '&oauth_consumer_key=' + oauth_consumer_key
    parameter_string = parameter_string + '&oauth_nonce=' + oauth_nonce
    parameter_string = parameter_string + '&oauth_signature_method=' + oauth_signature_method
    parameter_string = parameter_string + '&oauth_timestamp=' + oauth_timestamp
    parameter_string = parameter_string + '&oauth_version=' + oauth_version
    return parameter_string


def create_signature(secret_key, signature_base_string):
    encoded_string = signature_base_string.encode()
    encoded_key = secret_key.encode()
    temp = hmac.new(encoded_key, encoded_string, hashlib.sha256).hexdigest()
    byte_array = b64encode(binascii.unhexlify(temp))
    return byte_array.decode()


with open('credentials.properties', mode='r') as credential_properties:  # From credentials.properties file
    lines = credential_properties.readlines()
    here_user_id = lines[0].split(' = ')[1][:-1]
    here_client_id = lines[1].split(' = ')[1][:-1]
    here_access_key_id = lines[2].split(' = ')[1][:-1]
    here_access_key_secret = lines[3].split(' = ')[1][:-1]
    here_token_endpoint_url = lines[4].split(' = ')[1][:-1]

    grant_type = 'client_credentials'

    oauth_nonce = str(int(time.time() * 1000))
    oauth_signature_method = 'HMAC-SHA256'
    oauth_timestamp = str(int(time.time()))
    oauth_version = '1.0'

    parameter_string = create_parameter_string(grant_type, here_access_key_id, oauth_nonce, oauth_signature_method,
                                               oauth_timestamp, oauth_version)
    encoded_parameter_string = urllib.parse.quote(parameter_string, safe='')

    encoded_base_string = 'POST' + '&' + urllib.parse.quote(here_token_endpoint_url, safe='')
    encoded_base_string = encoded_base_string + '&' + encoded_parameter_string

    signing_key = here_access_key_secret + '&'

    oauth_signature = create_signature(signing_key, encoded_base_string)
    encoded_oauth_signature = urllib.parse.quote(oauth_signature, safe='')

    body = {'grant_type': '{}'.format(grant_type)}

    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Authorization': 'OAuth oauth_consumer_key="{0}",oauth_nonce="{1}",oauth_signature="{2}",oauth_signature_method="HMAC-SHA256",oauth_timestamp="{3}",oauth_version="1.0"'.format(
            here_access_key_id, oauth_nonce, encoded_oauth_signature, oauth_timestamp)
    }

    response = requests.post(here_token_endpoint_url, data=body, headers=headers)
    print(response.text)

    oauth_result = json.loads(response.text)
{"access_token":"eyJhbGciOiJSUzUxMiIsImN0eSI6IkpXVCIsImlzcyI6IkhFUkUiLCJhaWQiOiJLdjBGN2l5NzNjZnoxOHRQdXYxOCIsImlhdCI6MTcxMDgxNTExNywiZXhwIjoxNzEwOTAxNTE3LCJraWQiOiJqMSJ9.ZXlKaGJHY2lPaUprYVhJaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuLldmRmplaHhnSE16X0NxSFVMOW1QUVEuSGVRdTEzOFYzUVBjNS1WMFFPeUZmSVVXSTZGa0hVbVdrM1o2MF9fNEQzQUVEZlJzREJRTmhNNWJaVHhfZXUzakpHYW9uR2dnLTJDNy1KbXJnMkRJeE5pd2NudkNOVmRkMjZFaHdxV1hPQVR4WnZwUlRFMTlkc1NIMFFnMHdLX1pMVzBoalZxMXZfdGRlaUp6cHlSTEZ3Lkx2MkxsblVDMDZEX191VUpmVWJxOHdGNTgydllOa3BPNzE2MTBzMXJqU00.ndpa4lndyDlllpLhf0if2Y1k3dSATCLsZ5vjpIoMg8OrNpmIKVgRmtWLEAgtKmcKFhQOPY4vOGQnduFV4ghkb32-H_6TYFenpg-n0LcJQax3c9yDCThRC468VeVnAuIlDpwLH6-IsDk1RqnSLLI7T1_eXz74YJveM_iVcXmZgXmLiEzcgB-_arGH5HIO8X5m4RdGOmUBMSXTrh2SQSNT9ET3SWoTk2lSzDbwdrTumAK9K7SNjTZd-1sXdAy34cL810gNifVcbxWhm0adNaM4sNTBwhUNaaYxDYtQiEmRIDaKow-5gsJZ_2538QjRwUW4a45bsauFu2ZwIN3crYSMCw","token_type":"bearer","expires_in":86399}
In [2]:
# delivery target listing

import csv
destinations = 'destinations_v2.csv'
destination_list = []
f = open(destinations, encoding='utf-8')
csv = csv.DictReader(f)
for row in csv:
    destination_list.append(row)
print(destination_list)
[{'customer_id': 'c000001', 'name': '肯德基-花蓮中正餐廳', 'latitude': '23.97929', 'longitude': '121.61043', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000002', 'name': '肯德基-台北台大餐廳', 'latitude': '25.01707', 'longitude': '121.53325', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000003', 'name': '肯德基-彰化員林餐廳', 'latitude': '23.95943', 'longitude': '120.57111', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000004', 'name': '肯德基-中和興南餐廳', 'latitude': '24.98914', 'longitude': '121.50996', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000005', 'name': '肯德基-嘉義忠孝餐廳', 'latitude': '23.49499', 'longitude': '120.45175', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000006', 'name': '肯德基-高雄十全餐廳', 'latitude': '22.64501', 'longitude': '120.30923', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000007', 'name': '肯德基-土城裕民餐廳', 'latitude': '24.98545', 'longitude': '121.45267', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000008', 'name': '肯德基-台北石牌餐廳', 'latitude': '25.11494', 'longitude': '121.51556', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000009', 'name': '肯德基-嘉義垂楊餐廳', 'latitude': '23.47376', 'longitude': '120.44832', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000010', 'name': '肯德基-中和福祥餐廳', 'latitude': '25.00264', 'longitude': '121.49895', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000011', 'name': '肯德基-台北中崙餐廳', 'latitude': '25.04721', 'longitude': '121.54245', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000012', 'name': '肯德基-高雄岡山餐廳', 'latitude': '22.79388', 'longitude': '120.29578', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000013', 'name': '肯德基-台南西門二餐廳', 'latitude': '23.00881', 'longitude': '120.20743', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000014', 'name': '肯德基-淡水竹圍餐廳', 'latitude': '25.14038', 'longitude': '121.45975', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000015', 'name': '肯德基-高雄沿海餐廳', 'latitude': '22.56732', 'longitude': '120.35157', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000016', 'name': '肯德基-台北三越餐廳', 'latitude': '25.04663', 'longitude': '121.51537', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000017', 'name': '肯德基-台北土城餐廳', 'latitude': '24.98616', 'longitude': '121.46479', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000018', 'name': '肯德基-板橋埔墘餐廳', 'latitude': '25.01751', 'longitude': '121.47736', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000019', 'name': '肯德基-鳳山中山餐廳', 'latitude': '22.62448', 'longitude': '120.35702', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000020', 'name': '肯德基-彰化金馬餐廳', 'latitude': '24.09398', 'longitude': '120.54057', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000021', 'name': '肯德基-蘆洲三民餐廳', 'latitude': '25.08714', 'longitude': '121.47138', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000022', 'name': '肯德基-太平中山餐廳', 'latitude': '24.14981', 'longitude': '120.71283', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000023', 'name': '肯德基-台中三越餐廳', 'latitude': '24.16563', 'longitude': '120.6438', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000024', 'name': '肯德基-高雄楠梓二餐廳', 'latitude': '22.72697', 'longitude': '120.32673', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000025', 'name': '肯德基-新莊中港餐廳', 'latitude': '25.0447', 'longitude': '121.45266', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000026', 'name': '肯德基-新竹亞太餐廳', 'latitude': '24.80531', 'longitude': '120.9862', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000027', 'name': '肯德基-楊梅中山餐廳', 'latitude': '24.90889', 'longitude': '121.16696', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000028', 'name': '肯德基-宜蘭家樂福餐廳', 'latitude': '24.75405', 'longitude': '121.74993', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000029', 'name': '肯德基-龍潭北龍餐廳', 'latitude': '24.86839', 'longitude': '121.21836', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000030', 'name': '肯德基-苗栗頭份餐廳', 'latitude': '24.69083', 'longitude': '120.91315', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000031', 'name': '肯德基-新竹民生餐廳', 'latitude': '24.81355', 'longitude': '120.97438', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000032', 'name': '肯德基-三重三和餐廳', 'latitude': '25.07921', 'longitude': '121.48224', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000033', 'name': '肯德基-宜蘭新興餐廳', 'latitude': '24.75614', 'longitude': '121.75809', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000034', 'name': '肯德基-中壢環中東餐廳', 'latitude': '24.96236', 'longitude': '121.25531', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000035', 'name': '肯德基-高雄中華五餐廳', 'latitude': '22.60521', 'longitude': '120.30503', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000036', 'name': '肯德基-台中復興餐廳', 'latitude': '24.11732', 'longitude': '120.658', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000037', 'name': '肯德基-台中永福餐廳', 'latitude': '24.18456', 'longitude': '120.62095', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000038', 'name': '肯德基-永和中正餐廳', 'latitude': '24.99907', 'longitude': '121.51711', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000039', 'name': '肯德基-台北士林餐廳', 'latitude': '25.0873', 'longitude': '121.5259', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000040', 'name': '肯德基-台南永康餐廳', 'latitude': '23.04153', 'longitude': '120.24255', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000041', 'name': '肯德基-高雄站前餐廳', 'latitude': '22.6379', 'longitude': '120.30108', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000042', 'name': '肯德基-桃園大興西餐廳', 'latitude': '25.01052', 'longitude': '121.2969', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000043', 'name': '肯德基-彰化中山餐廳', 'latitude': '24.06824', 'longitude': '120.54014', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000044', 'name': '肯德基-高雄三多餐廳', 'latitude': '22.6198', 'longitude': '120.32263', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000045', 'name': '肯德基-大里中興餐廳', 'latitude': '24.1104', 'longitude': '120.69003', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000046', 'name': '肯德基-基隆仁一餐廳', 'latitude': '25.12789', 'longitude': '121.75095', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000047', 'name': '肯德基-台南東門餐廳', 'latitude': '22.98225', 'longitude': '120.22792', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000048', 'name': '肯德基-中壢中正餐廳', 'latitude': '24.95537', 'longitude': '121.22162', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000049', 'name': '肯德基-台北東湖二餐廳', 'latitude': '25.06821', 'longitude': '121.61631', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000050', 'name': '肯德基-中壢民族餐廳', 'latitude': '24.95739', 'longitude': '121.20469', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000051', 'name': '肯德基-林口文化餐廳', 'latitude': '25.06991', 'longitude': '121.37173', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000052', 'name': '肯德基-中和連城餐廳', 'latitude': '24.9962', 'longitude': '121.48799', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000053', 'name': '肯德基-宜蘭羅東餐廳', 'latitude': '24.67627', 'longitude': '121.76674', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000054', 'name': '肯德基-台東新生餐廳', 'latitude': '22.75301', 'longitude': '121.14764', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000055', 'name': '肯德基-台北中山餐廳', 'latitude': '25.05177', 'longitude': '121.5436', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000056', 'name': '肯德基-台南安平餐廳', 'latitude': '22.98849', 'longitude': '120.17317', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000057', 'name': '肯德基-北投光明餐廳', 'latitude': '25.13673', 'longitude': '121.50431', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000058', 'name': '肯德基-高雄大順二餐廳', 'latitude': '22.64441', 'longitude': '120.32627', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000059', 'name': '肯德基-桃園台茂餐廳', 'latitude': '25.05292', 'longitude': '121.28768', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000060', 'name': '肯德基-林口復興餐廳', 'latitude': '25.05909', 'longitude': '121.36743', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000061', 'name': '肯德基-台中烏日餐廳', 'latitude': '24.33462', 'longitude': '120.61525', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000062', 'name': '肯德基-台南中華餐廳', 'latitude': '23.00299', 'longitude': '120.23513', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000063', 'name': '肯德基-台中五權餐廳', 'latitude': '24.15036', 'longitude': '120.67641', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000064', 'name': '肯德基-鳳山五甲二餐廳', 'latitude': '22.60091', 'longitude': '120.33976', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000065', 'name': '肯德基-嘉義中興餐廳', 'latitude': '23.4795', 'longitude': '120.42925', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000066', 'name': '肯德基-南崁中正餐廳', 'latitude': '25.04407', 'longitude': '121.29408', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000067', 'name': '肯德基-台中大雅餐廳', 'latitude': '24.2254', 'longitude': '120.64533', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000068', 'name': '肯德基-新莊民安餐廳', 'latitude': '25.02345', 'longitude': '121.42558', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000069', 'name': '肯德基-高雄大順餐廳', 'latitude': '22.63253', 'longitude': '120.32548', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000070', 'name': '肯德基-高雄自由餐廳', 'latitude': '22.66062', 'longitude': '120.30884', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000071', 'name': '肯德基-南投草屯餐廳', 'latitude': '23.97505', 'longitude': '120.68364', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000072', 'name': '肯德基-桃園八德餐廳', 'latitude': '24.95411', 'longitude': '121.29861', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000073', 'name': '肯德基-桃園經國餐廳', 'latitude': '25.01499', 'longitude': '121.30609', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000074', 'name': '肯德基-台北內湖餐廳', 'latitude': '25.08252', 'longitude': '121.56485', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000075', 'name': '肯德基-中壢中和餐廳', 'latitude': '24.95413', 'longitude': '121.22565', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000076', 'name': '肯德基-新竹竹北餐廳', 'latitude': '24.82645', 'longitude': '121.01085', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000077', 'name': '肯德基-台北永春餐廳', 'latitude': '25.041', 'longitude': '121.57313', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000078', 'name': '肯德基-台北雙連餐廳', 'latitude': '25.0578', 'longitude': '121.52166', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000079', 'name': '肯德基-台北承德餐廳', 'latitude': '25.05076', 'longitude': '121.51689', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000080', 'name': '肯德基-中港愛買餐廳', 'latitude': '24.16183', 'longitude': '120.65072', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000081', 'name': '肯德基-台中后庄餐廳', 'latitude': '24.18977', 'longitude': '120.66255', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000082', 'name': '肯德基-三重重新二餐廳', 'latitude': '25.06293', 'longitude': '121.49969', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000083', 'name': '肯德基-屏東逢甲餐廳', 'latitude': '22.67053', 'longitude': '120.48713', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000084', 'name': '肯德基-台中沙鹿餐廳', 'latitude': '24.23578', 'longitude': '120.55913', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000085', 'name': '肯德基-鳳山五甲一餐廳', 'latitude': '22.59008', 'longitude': '120.32425', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000086', 'name': '肯德基-新店北新餐廳', 'latitude': '24.97327', 'longitude': '121.54287', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000087', 'name': '肯德基-南投埔里餐廳', 'latitude': '23.96371', 'longitude': '120.96889', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000088', 'name': '肯德基-新店光明餐廳', 'latitude': '24.95911', 'longitude': '121.53831', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000089', 'name': '肯德基-苗栗中正餐廳', 'latitude': '24.55175', 'longitude': '120.81604', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000090', 'name': '肯德基-基隆忠二餐廳', 'latitude': '25.12979', 'longitude': '121.74067', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000091', 'name': '肯德基-板橋新埔餐廳', 'latitude': '25.02277', 'longitude': '121.46726', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000092', 'name': '肯德基-桃園中山餐廳', 'latitude': '24.99077', 'longitude': '121.2904', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000093', 'name': '肯德基-台中文心餐廳', 'latitude': '24.17358', 'longitude': '120.67646', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000094', 'name': '肯德基-台中五權西餐廳', 'latitude': '24.14006', 'longitude': '120.65156', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000095', 'name': '肯德基-雲林虎尾餐廳', 'latitude': '23.70955', 'longitude': '120.43659', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000096', 'name': '肯德基-新竹竹東餐廳', 'latitude': '24.7428', 'longitude': '121.08422', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000097', 'name': '肯德基-台北南京西餐廳', 'latitude': '25.05267', 'longitude': '121.52003', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000098', 'name': '肯德基-台北天母餐廳', 'latitude': '25.11811', 'longitude': '121.53084', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000099', 'name': '肯德基-台南崇明餐廳', 'latitude': '22.97638', 'longitude': '120.22119', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000100', 'name': '肯德基-樹林中山餐廳', 'latitude': '24.99192', 'longitude': '121.4237', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000101', 'name': '肯德基-淡水中山餐廳', 'latitude': '25.17742', 'longitude': '121.44318', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000102', 'name': '肯德基-大里國光餐廳', 'latitude': '24.10062', 'longitude': '120.68234', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000103', 'name': '肯德基-台中豐原餐廳', 'latitude': '24.25304', 'longitude': '120.72189', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000104', 'name': '肯德基-台南中華西餐廳', 'latitude': '22.99301', 'longitude': '120.18691', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000105', 'name': '肯德基-斗六民生餐廳', 'latitude': '23.70126', 'longitude': '120.53708', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000106', 'name': '肯德基-桃園中正餐廳', 'latitude': '24.99061', 'longitude': '121.31294', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000107', 'name': '肯德基-泰山明志餐廳', 'latitude': '25.05904', 'longitude': '121.43136', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000108', 'name': '肯德基-中和環球餐廳', 'latitude': '25.00609', 'longitude': '121.47514', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000109', 'name': '肯德基-台北莊敬餐廳', 'latitude': '25.02795', 'longitude': '121.56387', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000110', 'name': '肯德基-三峽北大餐廳', 'latitude': '24.94458', 'longitude': '121.37405', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000111', 'name': '肯德基-屏東自由餐廳', 'latitude': '22.68354', 'longitude': '120.48985', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000112', 'name': '肯德基-彰化鹿港餐廳', 'latitude': '24.05574', 'longitude': '120.43347', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000113', 'name': '肯德基-北屯大買家餐廳', 'latitude': '24.17624', 'longitude': '120.69952', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000114', 'name': '肯德基-汐止中興餐廳', 'latitude': '25.06633', 'longitude': '121.6309', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000115', 'name': '肯德基-土城金城餐廳', 'latitude': '24.98584', 'longitude': '121.46398', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000116', 'name': '肯德基-左營環球餐廳', 'latitude': '22.68762', 'longitude': '120.30674', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000117', 'name': '肯德基-台北車站B1餐廳', 'latitude': '25.04745', 'longitude': '121.51614', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000118', 'name': '肯德基-台北車站B2餐廳', 'latitude': '25.04745', 'longitude': '121.51614', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000119', 'name': '肯德基-台中中港愛買餐廳', 'latitude': '24.1748', 'longitude': '120.66333', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000120', 'name': '肯德基-新營中正餐廳', 'latitude': '23.3072', 'longitude': '120.31611', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000121', 'name': '肯德基-台南善化餐廳', 'latitude': '23.12865', 'longitude': '120.2929', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000122', 'name': '肯德基-文山興隆餐廳', 'latitude': '25.00079', 'longitude': '121.55484', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000123', 'name': '肯德基-台南成大餐廳', 'latitude': '22.99603', 'longitude': '120.22089', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000124', 'name': '肯德基-台北萬大餐廳', 'latitude': '25.02543', 'longitude': '121.50039', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000125', 'name': '肯德基-台中烏日餐廳', 'latitude': '24.10725', 'longitude': '120.63624', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000126', 'name': '肯德基-竹北自強餐廳', 'latitude': '24.81657', 'longitude': '121.02569', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000127', 'name': '肯德基-士林文昌餐廳', 'latitude': '25.09447', 'longitude': '121.5223', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000128', 'name': '肯德基-新竹光復餐廳', 'latitude': '24.78667', 'longitude': '121.01074', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000129', 'name': '肯德基-板橋中山二餐廳', 'latitude': '25.00961', 'longitude': '121.46117', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000131', 'name': '肯德基-南投南崗餐廳', 'latitude': '23.91154', 'longitude': '120.67872', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000132', 'name': '肯德基-淡水中山二餐廳', 'latitude': '25.16965', 'longitude': '121.44437', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000133', 'name': '肯德基-台北南港餐廳', 'latitude': '25.05579', 'longitude': '121.61395', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000134', 'name': '肯德基-新莊輔大餐廳', 'latitude': '25.03231', 'longitude': '121.43346', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000135', 'name': '肯德基-桃園大園餐廳', 'latitude': '25.06246', 'longitude': '121.20148', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000136', 'name': '肯德基-桃園桃鶯餐廳', 'latitude': '24.98354', 'longitude': '121.31872', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000137', 'name': '肯德基-五股成泰餐廳', 'latitude': '25.08458', 'longitude': '121.4385', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000138', 'name': '肯德基-三重三和餐廳', 'latitude': '25.0363', 'longitude': '121.55691', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000139', 'name': '肯德基-高雄後昌餐廳', 'latitude': '22.71883', 'longitude': '120.2918', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000140', 'name': '肯德基-彰化民權餐廳', 'latitude': '24.07694', 'longitude': '120.53719', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000141', 'name': '肯德基-汐止大同餐廳', 'latitude': '25.06729', 'longitude': '121.65759', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000142', 'name': '肯德基-台南海佃餐廳', 'latitude': '23.02865', 'longitude': '120.19058', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000143', 'name': '肯德基-羅東興東餐廳', 'latitude': '24.67959', 'longitude': '121.769', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000144', 'name': '肯德基-台南海佃餐廳', 'latitude': '23.0237', 'longitude': '120.19181', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000145', 'name': '肯德基-新竹清大餐廳', 'latitude': '24.79592', 'longitude': '120.99814', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000146', 'name': '肯德基-楊梅大成餐廳', 'latitude': '24.9104', 'longitude': '121.14567', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000147', 'name': '肯德基-桃園中山餐廳', 'latitude': '24.97461', 'longitude': '121.26382', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000148', 'name': '肯德基-天母中山餐廳', 'latitude': '25.11824', 'longitude': '121.53014', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000149', 'name': '肯德基-高雄文化餐廳', 'latitude': '22.62796', 'longitude': '120.31531', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000150', 'name': '肯德基-台中潭子餐廳', 'latitude': '24.21387', 'longitude': '120.70055', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000151', 'name': '肯德基-文山木柵餐廳', 'latitude': '24.98858', 'longitude': '121.56681', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000152', 'name': '肯德基-宜蘭舊城餐廳', 'latitude': '24.75487', 'longitude': '121.75482', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000153', 'name': '肯德基-三重正義餐廳', 'latitude': '25.06667', 'longitude': '121.4966', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000154', 'name': '肯德基-台北峨嵋餐廳', 'latitude': '25.04348', 'longitude': '121.50713', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000155', 'name': '肯德基-永和中山餐廳', 'latitude': '25.0062', 'longitude': '121.50575', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000156', 'name': '肯德基-台南金華餐廳', 'latitude': '22.98102', 'longitude': '120.19147', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000157', 'name': '肯德基-台中台糖餐廳', 'latitude': '24.18367', 'longitude': '120.61457', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000158', 'name': '肯德基-竹北自強餐廳', 'latitude': '24.81074', 'longitude': '121.02149', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000159', 'name': '肯德基-新竹新豐餐廳', 'latitude': '24.8678', 'longitude': '120.99374', 'job_type': 'delivery', 'duration': '600', 'mass': '100', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}, {'customer_id': 'c000160', 'name': '肯德基-龍潭北龍餐廳', 'latitude': '24.86458', 'longitude': '121.211', 'job_type': 'delivery', 'duration': '300', 'mass': '50', 'size': '1', 'priority': '2', 'time_start': '2024-11-25T01:00:00Z', 'time_end': '2024-11-25T09:00:00Z', 'task_fulfiller': '', 'estimated_time_of_arrival': '', 'actual_time_of_arrival': '', 'task_status': ''}]
In [3]:
# delivery vehicle listing

import csv

destinations = 'fleet.csv'
f = open(destinations, encoding='utf-8')
csv = csv.reader(f)
for row in csv:
    print(row)
['vehicle_id', 'type', 'name', 'cost_distance', 'cost_time', 'cost_fixed', 'shift_start', 'shift_end', 'start_latitude', 'start_longitude', 'end_latitude', 'end_longitude', 'break_start', 'break_end', 'break_duration', 'capacity_mass', 'capacity_size', 'max_distance', 'shift_time', 'amount']
['isuzu', 'truck', 'ISUZU_NLR', '0.004', '0.033', '1600', '2024-11-25T00:00:00Z', '2024-11-25T09:00:00Z', '25.0633628527129', '121.5517443657892', '25.0633628527129', '121.5517443657892', '2024-11-25T04:00:00Z', '2024-11-25T05:00:00Z', '3600', '3500', '40', '600000', '28800', '10']
['mitsubishi', 'truck', 'MITSUBISHI_CANTER', '0.005', '0.04', '2000', '2024-11-25T00:00:00Z', '2024-11-25T09:00:00Z', '22.570109085287', '120.34168946760741', '22.570109085287', '120.34168946760741', '2024-11-25T04:00:00Z', '2024-11-25T05:00:00Z', '3600', '3500', '50', '600000', '28800', '10']
In [4]:
# composing HERE Tour Planning API request body

import csv
import json

destinations = 'destinations_v2.csv'
vehicles = 'fleet.csv'

jobs = []
types = []
profiles = []

with open(destinations, encoding='utf-8') as destinations:
    reader = csv.DictReader(destinations)
    for row in reader:
        job_type = row['job_type']
        if job_type == 'delivery':
            jobs.append({
                "id": row['customer_id'],
                "tasks": {
                "deliveries": [
                    {
                    "places": [
                        {
                        "times": [
                            [row['time_start'],
                            row['time_end']]
                        ],
                        "location": {
                            "lat": float(row['latitude']),
                            "lng": float(row['longitude'])
                        },
                        "duration": int(row['duration'])
                        }
                    ],
                    "demand": [int(row['size'])]
                    }   
                ],
                },
                "priority": int(row['priority'])
            }
        )
        


with open(vehicles, encoding='utf-8') as vehicle_list:
    reader = csv.DictReader(vehicle_list)
    for row in reader:
        types.append({
            "id": row['vehicle_id'],
            "profile": row['name'],
            "costs": {
                "fixed": float(row['cost_fixed']),
                "distance": float(row['cost_distance']),
                "time": float(row['cost_time'])
            },
            "shifts": [
                {
                    "start": {
                        "time": row['shift_start'],
                        "location": {
                            "lat": float(row['start_latitude']),
                            "lng": float(row['start_longitude'])
                        }
                    },
                    "end": {
                        "time": row['shift_end'],
                        "location": {
                            "lat": float(row['end_latitude']),
                            "lng": float(row['end_longitude'])
                        }
                    },
                    "breaks": [
                        {
                            "times": [
                                [
                                    row['break_start'],
                                    row['break_end']
                                ]
                            ],
                            "duration": int(row['break_duration']),
                        }
                    ]
                }
            ],
            "capacity": [
                int(row['capacity_mass']),
                int(row['capacity_size'])
            ],
            "skills": [
                "fridge"
            ],
            "limits": {
                "maxDistance": int(row['max_distance']),
                "shiftTime": int(row['shift_time'])
            },
            "amount": int(row['amount'])
        })
        profiles.append({
            "name": row['name'],
            "type": row['type']
        })

problem = {
    "plan": {
        "jobs": jobs,
    },
    "fleet": {
        "types": types,
        "profiles": profiles
    },
    "configuration": {
        "termination": {
            "maxTime": 240,
            "stagnationTime": 1
         }
    }
}

data = json.dumps(problem, ensure_ascii=False)

print(data)
{"plan": {"jobs": [{"id": "c000001", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.97929, "lng": 121.61043}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000002", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.01707, "lng": 121.53325}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000003", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.95943, "lng": 120.57111}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000004", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.98914, "lng": 121.50996}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000005", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.49499, "lng": 120.45175}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000006", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.64501, "lng": 120.30923}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000007", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.98545, "lng": 121.45267}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000008", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.11494, "lng": 121.51556}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000009", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.47376, "lng": 120.44832}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000010", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.00264, "lng": 121.49895}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000011", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.04721, "lng": 121.54245}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000012", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.79388, "lng": 120.29578}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000013", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.00881, "lng": 120.20743}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000014", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.14038, "lng": 121.45975}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000015", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.56732, "lng": 120.35157}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000016", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.04663, "lng": 121.51537}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000017", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.98616, "lng": 121.46479}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000018", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.01751, "lng": 121.47736}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000019", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.62448, "lng": 120.35702}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000020", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.09398, "lng": 120.54057}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000021", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.08714, "lng": 121.47138}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000022", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.14981, "lng": 120.71283}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000023", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.16563, "lng": 120.6438}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000024", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.72697, "lng": 120.32673}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000025", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.0447, "lng": 121.45266}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000026", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.80531, "lng": 120.9862}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000027", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.90889, "lng": 121.16696}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000028", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.75405, "lng": 121.74993}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000029", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.86839, "lng": 121.21836}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000030", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.69083, "lng": 120.91315}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000031", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.81355, "lng": 120.97438}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000032", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.07921, "lng": 121.48224}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000033", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.75614, "lng": 121.75809}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000034", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.96236, "lng": 121.25531}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000035", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.60521, "lng": 120.30503}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000036", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.11732, "lng": 120.658}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000037", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.18456, "lng": 120.62095}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000038", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.99907, "lng": 121.51711}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000039", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.0873, "lng": 121.5259}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000040", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.04153, "lng": 120.24255}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000041", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.6379, "lng": 120.30108}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000042", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.01052, "lng": 121.2969}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000043", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.06824, "lng": 120.54014}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000044", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.6198, "lng": 120.32263}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000045", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.1104, "lng": 120.69003}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000046", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.12789, "lng": 121.75095}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000047", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.98225, "lng": 120.22792}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000048", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.95537, "lng": 121.22162}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000049", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.06821, "lng": 121.61631}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000050", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.95739, "lng": 121.20469}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000051", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.06991, "lng": 121.37173}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000052", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.9962, "lng": 121.48799}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000053", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.67627, "lng": 121.76674}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000054", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.75301, "lng": 121.14764}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000055", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.05177, "lng": 121.5436}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000056", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.98849, "lng": 120.17317}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000057", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.13673, "lng": 121.50431}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000058", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.64441, "lng": 120.32627}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000059", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.05292, "lng": 121.28768}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000060", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.05909, "lng": 121.36743}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000061", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.33462, "lng": 120.61525}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000062", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.00299, "lng": 120.23513}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000063", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.15036, "lng": 120.67641}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000064", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.60091, "lng": 120.33976}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000065", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.4795, "lng": 120.42925}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000066", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.04407, "lng": 121.29408}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000067", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.2254, "lng": 120.64533}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000068", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.02345, "lng": 121.42558}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000069", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.63253, "lng": 120.32548}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000070", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.66062, "lng": 120.30884}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000071", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.97505, "lng": 120.68364}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000072", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.95411, "lng": 121.29861}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000073", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.01499, "lng": 121.30609}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000074", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.08252, "lng": 121.56485}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000075", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.95413, "lng": 121.22565}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000076", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.82645, "lng": 121.01085}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000077", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.041, "lng": 121.57313}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000078", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.0578, "lng": 121.52166}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000079", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.05076, "lng": 121.51689}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000080", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.16183, "lng": 120.65072}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000081", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.18977, "lng": 120.66255}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000082", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.06293, "lng": 121.49969}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000083", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.67053, "lng": 120.48713}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000084", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.23578, "lng": 120.55913}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000085", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.59008, "lng": 120.32425}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000086", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.97327, "lng": 121.54287}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000087", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.96371, "lng": 120.96889}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000088", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.95911, "lng": 121.53831}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000089", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.55175, "lng": 120.81604}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000090", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.12979, "lng": 121.74067}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000091", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.02277, "lng": 121.46726}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000092", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.99077, "lng": 121.2904}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000093", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.17358, "lng": 120.67646}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000094", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.14006, "lng": 120.65156}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000095", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.70955, "lng": 120.43659}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000096", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.7428, "lng": 121.08422}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000097", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.05267, "lng": 121.52003}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000098", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.11811, "lng": 121.53084}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000099", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.97638, "lng": 120.22119}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000100", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.99192, "lng": 121.4237}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000101", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.17742, "lng": 121.44318}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000102", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.10062, "lng": 120.68234}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000103", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.25304, "lng": 120.72189}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000104", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.99301, "lng": 120.18691}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000105", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.70126, "lng": 120.53708}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000106", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.99061, "lng": 121.31294}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000107", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.05904, "lng": 121.43136}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000108", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.00609, "lng": 121.47514}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000109", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.02795, "lng": 121.56387}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000110", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.94458, "lng": 121.37405}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000111", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.68354, "lng": 120.48985}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000112", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.05574, "lng": 120.43347}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000113", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.17624, "lng": 120.69952}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000114", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.06633, "lng": 121.6309}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000115", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.98584, "lng": 121.46398}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000116", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.68762, "lng": 120.30674}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000117", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.04745, "lng": 121.51614}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000118", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.04745, "lng": 121.51614}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000119", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.1748, "lng": 120.66333}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000120", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.3072, "lng": 120.31611}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000121", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.12865, "lng": 120.2929}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000122", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.00079, "lng": 121.55484}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000123", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.99603, "lng": 120.22089}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000124", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.02543, "lng": 121.50039}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000125", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.10725, "lng": 120.63624}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000126", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.81657, "lng": 121.02569}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000127", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.09447, "lng": 121.5223}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000128", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.78667, "lng": 121.01074}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000129", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.00961, "lng": 121.46117}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000131", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.91154, "lng": 120.67872}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000132", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.16965, "lng": 121.44437}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000133", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.05579, "lng": 121.61395}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000134", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.03231, "lng": 121.43346}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000135", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.06246, "lng": 121.20148}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000136", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.98354, "lng": 121.31872}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000137", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.08458, "lng": 121.4385}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000138", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.0363, "lng": 121.55691}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000139", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.71883, "lng": 120.2918}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000140", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.07694, "lng": 120.53719}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000141", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.06729, "lng": 121.65759}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000142", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.02865, "lng": 120.19058}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000143", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.67959, "lng": 121.769}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000144", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 23.0237, "lng": 120.19181}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000145", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.79592, "lng": 120.99814}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000146", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.9104, "lng": 121.14567}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000147", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.97461, "lng": 121.26382}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000148", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.11824, "lng": 121.53014}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000149", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.62796, "lng": 120.31531}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000150", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.21387, "lng": 120.70055}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000151", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.98858, "lng": 121.56681}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000152", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.75487, "lng": 121.75482}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000153", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.06667, "lng": 121.4966}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000154", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.04348, "lng": 121.50713}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000155", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 25.0062, "lng": 121.50575}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000156", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 22.98102, "lng": 120.19147}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000157", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.18367, "lng": 120.61457}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000158", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.81074, "lng": 121.02149}, "duration": 300}], "demand": [1]}]}, "priority": 2}, {"id": "c000159", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.8678, "lng": 120.99374}, "duration": 600}], "demand": [1]}]}, "priority": 2}, {"id": "c000160", "tasks": {"deliveries": [{"places": [{"times": [["2024-11-25T01:00:00Z", "2024-11-25T09:00:00Z"]], "location": {"lat": 24.86458, "lng": 121.211}, "duration": 300}], "demand": [1]}]}, "priority": 2}]}, "fleet": {"types": [{"id": "isuzu", "profile": "ISUZU_NLR", "costs": {"fixed": 1600.0, "distance": 0.004, "time": 0.033}, "shifts": [{"start": {"time": "2024-11-25T00:00:00Z", "location": {"lat": 25.0633628527129, "lng": 121.5517443657892}}, "end": {"time": "2024-11-25T09:00:00Z", "location": {"lat": 25.0633628527129, "lng": 121.5517443657892}}, "breaks": [{"times": [["2024-11-25T04:00:00Z", "2024-11-25T05:00:00Z"]], "duration": 3600}]}], "capacity": [3500, 40], "skills": ["fridge"], "limits": {"maxDistance": 600000, "shiftTime": 28800}, "amount": 10}, {"id": "mitsubishi", "profile": "MITSUBISHI_CANTER", "costs": {"fixed": 2000.0, "distance": 0.005, "time": 0.04}, "shifts": [{"start": {"time": "2024-11-25T00:00:00Z", "location": {"lat": 22.570109085287, "lng": 120.34168946760741}}, "end": {"time": "2024-11-25T09:00:00Z", "location": {"lat": 22.570109085287, "lng": 120.34168946760741}}, "breaks": [{"times": [["2024-11-25T04:00:00Z", "2024-11-25T05:00:00Z"]], "duration": 3600}]}], "capacity": [3500, 50], "skills": ["fridge"], "limits": {"maxDistance": 600000, "shiftTime": 28800}, "amount": 10}], "profiles": [{"name": "ISUZU_NLR", "type": "truck"}, {"name": "MITSUBISHI_CANTER", "type": "truck"}]}, "configuration": {"termination": {"maxTime": 240, "stagnationTime": 1}}}
In [5]:
# request HERE Tour Planning API V3 to get planning results

import requests

tour_planning_api_url = "https://tourplanning.hereapi.com/v3/problems"

headers = {
  'Content-Type': 'application/json',
  'Authorization': '{} {}'.format(oauth_result['token_type'], oauth_result['access_token'])
}

r = requests.request('POST', tour_planning_api_url, headers=headers, data = data)
j = json.loads(r.text)

print('result:\n{}'.format(r.text))
print('response_time: {}'.format(r.elapsed.total_seconds()))
result:
{"statistic":{"cost":70796.48300000001,"distance":4508205,"duration":427760,"times":{"driving":293060,"serving":69900,"waiting":0,"stopping":0,"break":64800}},"tours":[{"vehicleId":"isuzu_2","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:54:46Z"},"load":[25],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:54:46Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T01:05:38Z","departure":"2024-11-25T01:10:38Z"},"load":[24],"activities":[{"jobId":"c000078","type":"delivery","location":{"lat":25.0578,"lng":121.52166},"time":{"start":"2024-11-25T01:05:38Z","end":"2024-11-25T01:10:38Z"}}],"location":{"lat":25.0578,"lng":121.52166},"distance":3975},{"time":{"arrival":"2024-11-25T01:13:43Z","departure":"2024-11-25T01:23:43Z"},"load":[23],"activities":[{"jobId":"c000079","type":"delivery","location":{"lat":25.05076,"lng":121.51689},"time":{"start":"2024-11-25T01:13:43Z","end":"2024-11-25T01:23:43Z"}}],"location":{"lat":25.05076,"lng":121.51689},"distance":5084},{"time":{"arrival":"2024-11-25T01:29:13Z","departure":"2024-11-25T01:34:13Z"},"load":[22],"activities":[{"jobId":"c000154","type":"delivery","location":{"lat":25.04348,"lng":121.50713},"time":{"start":"2024-11-25T01:29:13Z","end":"2024-11-25T01:34:13Z"}}],"location":{"lat":25.04348,"lng":121.50713},"distance":6866},{"time":{"arrival":"2024-11-25T01:43:58Z","departure":"2024-11-25T01:48:58Z"},"load":[21],"activities":[{"jobId":"c000018","type":"delivery","location":{"lat":25.01751,"lng":121.47736},"time":{"start":"2024-11-25T01:43:58Z","end":"2024-11-25T01:48:58Z"}}],"location":{"lat":25.01751,"lng":121.47736},"distance":11626},{"time":{"arrival":"2024-11-25T01:54:15Z","departure":"2024-11-25T01:59:15Z"},"load":[20],"activities":[{"jobId":"c000108","type":"delivery","location":{"lat":25.00609,"lng":121.47514},"time":{"start":"2024-11-25T01:54:15Z","end":"2024-11-25T01:59:15Z"}}],"location":{"lat":25.00609,"lng":121.47514},"distance":13769},{"time":{"arrival":"2024-11-25T02:06:36Z","departure":"2024-11-25T02:11:36Z"},"load":[19],"activities":[{"jobId":"c000052","type":"delivery","location":{"lat":24.9962,"lng":121.48799},"time":{"start":"2024-11-25T02:06:36Z","end":"2024-11-25T02:11:36Z"}}],"location":{"lat":24.9962,"lng":121.48799},"distance":16128},{"time":{"arrival":"2024-11-25T02:18:45Z","departure":"2024-11-25T02:23:45Z"},"load":[18],"activities":[{"jobId":"c000004","type":"delivery","location":{"lat":24.98914,"lng":121.50996},"time":{"start":"2024-11-25T02:18:45Z","end":"2024-11-25T02:23:45Z"}}],"location":{"lat":24.98914,"lng":121.50996},"distance":19148},{"time":{"arrival":"2024-11-25T02:28:06Z","departure":"2024-11-25T02:33:06Z"},"load":[17],"activities":[{"jobId":"c000038","type":"delivery","location":{"lat":24.99907,"lng":121.51711},"time":{"start":"2024-11-25T02:28:06Z","end":"2024-11-25T02:33:06Z"}}],"location":{"lat":24.99907,"lng":121.51711},"distance":20482},{"time":{"arrival":"2024-11-25T02:39:27Z","departure":"2024-11-25T02:49:27Z"},"load":[16],"activities":[{"jobId":"c000155","type":"delivery","location":{"lat":25.0062,"lng":121.50575},"time":{"start":"2024-11-25T02:39:27Z","end":"2024-11-25T02:49:27Z"}}],"location":{"lat":25.0062,"lng":121.50575},"distance":22990},{"time":{"arrival":"2024-11-25T02:51:14Z","departure":"2024-11-25T02:56:14Z"},"load":[15],"activities":[{"jobId":"c000010","type":"delivery","location":{"lat":25.00264,"lng":121.49895},"time":{"start":"2024-11-25T02:51:14Z","end":"2024-11-25T02:56:14Z"}}],"location":{"lat":25.00264,"lng":121.49895},"distance":23818},{"time":{"arrival":"2024-11-25T03:01:26Z","departure":"2024-11-25T03:06:26Z"},"load":[14],"activities":[{"jobId":"c000124","type":"delivery","location":{"lat":25.02543,"lng":121.50039},"time":{"start":"2024-11-25T03:01:26Z","end":"2024-11-25T03:06:26Z"}}],"location":{"lat":25.02543,"lng":121.50039},"distance":26738},{"time":{"arrival":"2024-11-25T03:16:23Z","departure":"2024-11-25T03:31:23Z"},"load":[12],"activities":[{"jobId":"c000118","type":"delivery","location":{"lat":25.04745,"lng":121.51614},"time":{"start":"2024-11-25T03:16:23Z","end":"2024-11-25T03:21:23Z"}},{"jobId":"c000117","type":"delivery","location":{"lat":25.04745,"lng":121.51614},"time":{"start":"2024-11-25T03:21:23Z","end":"2024-11-25T03:31:23Z"}}],"location":{"lat":25.04745,"lng":121.51614},"distance":30418},{"time":{"arrival":"2024-11-25T03:34:45Z","departure":"2024-11-25T03:44:45Z"},"load":[11],"activities":[{"jobId":"c000097","type":"delivery","location":{"lat":25.05267,"lng":121.52003},"time":{"start":"2024-11-25T03:34:45Z","end":"2024-11-25T03:44:45Z"}}],"location":{"lat":25.05267,"lng":121.52003},"distance":31320},{"time":{"arrival":"2024-11-25T03:55:00Z","departure":"2024-11-25T05:00:00Z"},"load":[10],"activities":[{"jobId":"c000002","type":"delivery","location":{"lat":25.01707,"lng":121.53325},"time":{"start":"2024-11-25T03:55:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.01707,"lng":121.53325},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.01707,"lng":121.53325},"distance":36725},{"time":{"arrival":"2024-11-25T05:15:48Z","departure":"2024-11-25T05:20:48Z"},"load":[9],"activities":[{"jobId":"c000088","type":"delivery","location":{"lat":24.95911,"lng":121.53831},"time":{"start":"2024-11-25T05:15:48Z","end":"2024-11-25T05:20:48Z"}}],"location":{"lat":24.95911,"lng":121.53831},"distance":44192},{"time":{"arrival":"2024-11-25T05:26:55Z","departure":"2024-11-25T05:31:55Z"},"load":[8],"activities":[{"jobId":"c000086","type":"delivery","location":{"lat":24.97327,"lng":121.54287},"time":{"start":"2024-11-25T05:26:55Z","end":"2024-11-25T05:31:55Z"}}],"location":{"lat":24.97327,"lng":121.54287},"distance":45969},{"time":{"arrival":"2024-11-25T05:42:48Z","departure":"2024-11-25T05:52:48Z"},"load":[7],"activities":[{"jobId":"c000151","type":"delivery","location":{"lat":24.98858,"lng":121.56681},"time":{"start":"2024-11-25T05:42:48Z","end":"2024-11-25T05:52:48Z"}}],"location":{"lat":24.98858,"lng":121.56681},"distance":50148},{"time":{"arrival":"2024-11-25T05:59:53Z","departure":"2024-11-25T06:04:53Z"},"load":[6],"activities":[{"jobId":"c000122","type":"delivery","location":{"lat":25.00079,"lng":121.55484},"time":{"start":"2024-11-25T05:59:53Z","end":"2024-11-25T06:04:53Z"}}],"location":{"lat":25.00079,"lng":121.55484},"distance":52476},{"time":{"arrival":"2024-11-25T06:19:27Z","departure":"2024-11-25T06:29:27Z"},"load":[5],"activities":[{"jobId":"c000109","type":"delivery","location":{"lat":25.02795,"lng":121.56387},"time":{"start":"2024-11-25T06:19:27Z","end":"2024-11-25T06:29:27Z"}}],"location":{"lat":25.02795,"lng":121.56387},"distance":58013},{"time":{"arrival":"2024-11-25T06:37:47Z","departure":"2024-11-25T06:47:47Z"},"load":[4],"activities":[{"jobId":"c000077","type":"delivery","location":{"lat":25.041,"lng":121.57313},"time":{"start":"2024-11-25T06:37:47Z","end":"2024-11-25T06:47:47Z"}}],"location":{"lat":25.041,"lng":121.57313},"distance":60735},{"time":{"arrival":"2024-11-25T06:59:24Z","departure":"2024-11-25T07:09:24Z"},"load":[3],"activities":[{"jobId":"c000133","type":"delivery","location":{"lat":25.05579,"lng":121.61395},"time":{"start":"2024-11-25T06:59:24Z","end":"2024-11-25T07:09:24Z"}}],"location":{"lat":25.05579,"lng":121.61395},"distance":65903},{"time":{"arrival":"2024-11-25T07:22:09Z","departure":"2024-11-25T07:32:09Z"},"load":[2],"activities":[{"jobId":"c000141","type":"delivery","location":{"lat":25.06729,"lng":121.65759},"time":{"start":"2024-11-25T07:22:09Z","end":"2024-11-25T07:32:09Z"}}],"location":{"lat":25.06729,"lng":121.65759},"distance":71260},{"time":{"arrival":"2024-11-25T07:45:20Z","departure":"2024-11-25T07:55:20Z"},"load":[1],"activities":[{"jobId":"c000049","type":"delivery","location":{"lat":25.06821,"lng":121.61631},"time":{"start":"2024-11-25T07:45:20Z","end":"2024-11-25T07:55:20Z"}}],"location":{"lat":25.06821,"lng":121.61631},"distance":76452},{"time":{"arrival":"2024-11-25T08:11:20Z","departure":"2024-11-25T08:16:20Z"},"load":[0],"activities":[{"jobId":"c000074","type":"delivery","location":{"lat":25.08252,"lng":121.56485},"time":{"start":"2024-11-25T08:11:20Z","end":"2024-11-25T08:16:20Z"}}],"location":{"lat":25.08252,"lng":121.56485},"distance":83157},{"time":{"arrival":"2024-11-25T08:30:37Z","departure":"2024-11-25T08:30:37Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:30:37Z","end":"2024-11-25T08:30:37Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":89176}],"statistic":{"cost":2859.2870000000003,"distance":89176,"duration":27351,"times":{"driving":13251,"serving":10500,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_6","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[12],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T05:11:06Z","departure":"2024-11-25T05:16:06Z"},"load":[11],"activities":[{"jobId":"c000082","type":"delivery","location":{"lat":25.06293,"lng":121.49969},"time":{"start":"2024-11-25T05:11:06Z","end":"2024-11-25T05:16:06Z"}}],"location":{"lat":25.06293,"lng":121.49969},"distance":5479},{"time":{"arrival":"2024-11-25T05:17:57Z","departure":"2024-11-25T05:27:57Z"},"load":[10],"activities":[{"jobId":"c000153","type":"delivery","location":{"lat":25.06667,"lng":121.4966},"time":{"start":"2024-11-25T05:17:57Z","end":"2024-11-25T05:27:57Z"}}],"location":{"lat":25.06667,"lng":121.4966},"distance":6186},{"time":{"arrival":"2024-11-25T05:48:59Z","departure":"2024-11-25T05:53:59Z"},"load":[9],"activities":[{"jobId":"c000008","type":"delivery","location":{"lat":25.11494,"lng":121.51556},"time":{"start":"2024-11-25T05:48:59Z","end":"2024-11-25T05:53:59Z"}}],"location":{"lat":25.11494,"lng":121.51556},"distance":14209},{"time":{"arrival":"2024-11-25T06:03:47Z","departure":"2024-11-25T06:13:47Z"},"load":[8],"activities":[{"jobId":"c000057","type":"delivery","location":{"lat":25.13673,"lng":121.50431},"time":{"start":"2024-11-25T06:03:47Z","end":"2024-11-25T06:13:47Z"}}],"location":{"lat":25.13673,"lng":121.50431},"distance":17648},{"time":{"arrival":"2024-11-25T06:28:20Z","departure":"2024-11-25T06:33:20Z"},"load":[7],"activities":[{"jobId":"c000148","type":"delivery","location":{"lat":25.11824,"lng":121.53014},"time":{"start":"2024-11-25T06:28:20Z","end":"2024-11-25T06:33:20Z"}}],"location":{"lat":25.11824,"lng":121.53014},"distance":22931},{"time":{"arrival":"2024-11-25T06:33:30Z","departure":"2024-11-25T06:38:30Z"},"load":[6],"activities":[{"jobId":"c000098","type":"delivery","location":{"lat":25.11811,"lng":121.53084},"time":{"start":"2024-11-25T06:33:30Z","end":"2024-11-25T06:38:30Z"}}],"location":{"lat":25.11811,"lng":121.53084},"distance":23005},{"time":{"arrival":"2024-11-25T06:48:11Z","departure":"2024-11-25T06:58:11Z"},"load":[5],"activities":[{"jobId":"c000127","type":"delivery","location":{"lat":25.09447,"lng":121.5223},"time":{"start":"2024-11-25T06:48:11Z","end":"2024-11-25T06:58:11Z"}}],"location":{"lat":25.09447,"lng":121.5223},"distance":26866},{"time":{"arrival":"2024-11-25T07:01:27Z","departure":"2024-11-25T07:11:27Z"},"load":[4],"activities":[{"jobId":"c000039","type":"delivery","location":{"lat":25.0873,"lng":121.5259},"time":{"start":"2024-11-25T07:01:27Z","end":"2024-11-25T07:11:27Z"}}],"location":{"lat":25.0873,"lng":121.5259},"distance":28040},{"time":{"arrival":"2024-11-25T07:26:56Z","departure":"2024-11-25T07:36:56Z"},"load":[3],"activities":[{"jobId":"c000021","type":"delivery","location":{"lat":25.08714,"lng":121.47138},"time":{"start":"2024-11-25T07:26:56Z","end":"2024-11-25T07:36:56Z"}}],"location":{"lat":25.08714,"lng":121.47138},"distance":35674},{"time":{"arrival":"2024-11-25T07:47:23Z","departure":"2024-11-25T07:57:23Z"},"load":[2],"activities":[{"jobId":"c000137","type":"delivery","location":{"lat":25.08458,"lng":121.4385},"time":{"start":"2024-11-25T07:47:23Z","end":"2024-11-25T07:57:23Z"}}],"location":{"lat":25.08458,"lng":121.4385},"distance":40802},{"time":{"arrival":"2024-11-25T08:10:29Z","departure":"2024-11-25T08:15:29Z"},"load":[1],"activities":[{"jobId":"c000032","type":"delivery","location":{"lat":25.07921,"lng":121.48224},"time":{"start":"2024-11-25T08:10:29Z","end":"2024-11-25T08:15:29Z"}}],"location":{"lat":25.07921,"lng":121.48224},"distance":46065},{"time":{"arrival":"2024-11-25T08:36:19Z","departure":"2024-11-25T08:46:19Z"},"load":[0],"activities":[{"jobId":"c000055","type":"delivery","location":{"lat":25.05177,"lng":121.5436},"time":{"start":"2024-11-25T08:36:19Z","end":"2024-11-25T08:46:19Z"}}],"location":{"lat":25.05177,"lng":121.5436},"distance":54257},{"time":{"arrival":"2024-11-25T08:54:42Z","departure":"2024-11-25T08:54:42Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:54:42Z","end":"2024-11-25T08:54:42Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":56799}],"statistic":{"cost":2410.702,"distance":56799,"duration":17682,"times":{"driving":8382,"serving":5700,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_6","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[12],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T05:06:13Z","departure":"2024-11-25T05:16:13Z"},"load":[11],"activities":[{"jobId":"c000085","type":"delivery","location":{"lat":22.59008,"lng":120.32425},"time":{"start":"2024-11-25T05:06:13Z","end":"2024-11-25T05:16:13Z"}}],"location":{"lat":22.59008,"lng":120.32425},"distance":3524},{"time":{"arrival":"2024-11-25T05:20:07Z","departure":"2024-11-25T05:25:07Z"},"load":[10],"activities":[{"jobId":"c000064","type":"delivery","location":{"lat":22.60091,"lng":120.33976},"time":{"start":"2024-11-25T05:20:07Z","end":"2024-11-25T05:25:07Z"}}],"location":{"lat":22.60091,"lng":120.33976},"distance":5529},{"time":{"arrival":"2024-11-25T05:34:49Z","departure":"2024-11-25T05:44:49Z"},"load":[9],"activities":[{"jobId":"c000015","type":"delivery","location":{"lat":22.56732,"lng":120.35157},"time":{"start":"2024-11-25T05:34:49Z","end":"2024-11-25T05:44:49Z"}}],"location":{"lat":22.56732,"lng":120.35157},"distance":11581},{"time":{"arrival":"2024-11-25T06:02:59Z","departure":"2024-11-25T06:12:59Z"},"load":[8],"activities":[{"jobId":"c000041","type":"delivery","location":{"lat":22.6379,"lng":120.30108},"time":{"start":"2024-11-25T06:02:59Z","end":"2024-11-25T06:12:59Z"}}],"location":{"lat":22.6379,"lng":120.30108},"distance":22497},{"time":{"arrival":"2024-11-25T06:17:52Z","departure":"2024-11-25T06:22:52Z"},"load":[7],"activities":[{"jobId":"c000006","type":"delivery","location":{"lat":22.64501,"lng":120.30923},"time":{"start":"2024-11-25T06:17:52Z","end":"2024-11-25T06:22:52Z"}}],"location":{"lat":22.64501,"lng":120.30923},"distance":24285},{"time":{"arrival":"2024-11-25T06:37:35Z","departure":"2024-11-25T06:42:35Z"},"load":[6],"activities":[{"jobId":"c000116","type":"delivery","location":{"lat":22.68762,"lng":120.30674},"time":{"start":"2024-11-25T06:37:35Z","end":"2024-11-25T06:42:35Z"}}],"location":{"lat":22.68762,"lng":120.30674},"distance":31796},{"time":{"arrival":"2024-11-25T06:55:44Z","departure":"2024-11-25T07:00:44Z"},"load":[5],"activities":[{"jobId":"c000070","type":"delivery","location":{"lat":22.66062,"lng":120.30884},"time":{"start":"2024-11-25T06:55:44Z","end":"2024-11-25T07:00:44Z"}}],"location":{"lat":22.66062,"lng":120.30884},"distance":36784},{"time":{"arrival":"2024-11-25T07:08:03Z","departure":"2024-11-25T07:13:03Z"},"load":[4],"activities":[{"jobId":"c000058","type":"delivery","location":{"lat":22.64441,"lng":120.32627},"time":{"start":"2024-11-25T07:08:03Z","end":"2024-11-25T07:13:03Z"}}],"location":{"lat":22.64441,"lng":120.32627},"distance":39952},{"time":{"arrival":"2024-11-25T07:17:16Z","departure":"2024-11-25T07:27:16Z"},"load":[3],"activities":[{"jobId":"c000069","type":"delivery","location":{"lat":22.63253,"lng":120.32548},"time":{"start":"2024-11-25T07:17:16Z","end":"2024-11-25T07:27:16Z"}}],"location":{"lat":22.63253,"lng":120.32548},"distance":41430},{"time":{"arrival":"2024-11-25T07:30:11Z","departure":"2024-11-25T07:40:11Z"},"load":[2],"activities":[{"jobId":"c000149","type":"delivery","location":{"lat":22.62796,"lng":120.31531},"time":{"start":"2024-11-25T07:30:11Z","end":"2024-11-25T07:40:11Z"}}],"location":{"lat":22.62796,"lng":120.31531},"distance":42658},{"time":{"arrival":"2024-11-25T07:44:12Z","departure":"2024-11-25T07:49:12Z"},"load":[1],"activities":[{"jobId":"c000044","type":"delivery","location":{"lat":22.6198,"lng":120.32263},"time":{"start":"2024-11-25T07:44:12Z","end":"2024-11-25T07:49:12Z"}}],"location":{"lat":22.6198,"lng":120.32263},"distance":44402},{"time":{"arrival":"2024-11-25T07:55:40Z","departure":"2024-11-25T08:05:40Z"},"load":[0],"activities":[{"jobId":"c000035","type":"delivery","location":{"lat":22.60521,"lng":120.30503},"time":{"start":"2024-11-25T07:55:40Z","end":"2024-11-25T08:05:40Z"}}],"location":{"lat":22.60521,"lng":120.30503},"distance":47560},{"time":{"arrival":"2024-11-25T08:20:59Z","departure":"2024-11-25T08:20:59Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T08:20:59Z","end":"2024-11-25T08:20:59Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":54811}],"statistic":{"cost":2900.415,"distance":54811,"duration":15659,"times":{"driving":6659,"serving":5400,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_2","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[9],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T05:54:54Z","departure":"2024-11-25T06:04:54Z"},"load":[8],"activities":[{"jobId":"c000123","type":"delivery","location":{"lat":22.99603,"lng":120.22089},"time":{"start":"2024-11-25T05:54:54Z","end":"2024-11-25T06:04:54Z"}}],"location":{"lat":22.99603,"lng":120.22089},"distance":53398},{"time":{"arrival":"2024-11-25T06:13:44Z","departure":"2024-11-25T06:23:44Z"},"load":[7],"activities":[{"jobId":"c000013","type":"delivery","location":{"lat":23.00881,"lng":120.20743},"time":{"start":"2024-11-25T06:13:44Z","end":"2024-11-25T06:23:44Z"}}],"location":{"lat":23.00881,"lng":120.20743},"distance":56483},{"time":{"arrival":"2024-11-25T06:32:55Z","departure":"2024-11-25T06:37:55Z"},"load":[6],"activities":[{"jobId":"c000040","type":"delivery","location":{"lat":23.04153,"lng":120.24255},"time":{"start":"2024-11-25T06:32:55Z","end":"2024-11-25T06:37:55Z"}}],"location":{"lat":23.04153,"lng":120.24255},"distance":61814},{"time":{"arrival":"2024-11-25T06:52:23Z","departure":"2024-11-25T06:57:23Z"},"load":[5],"activities":[{"jobId":"c000144","type":"delivery","location":{"lat":23.0237,"lng":120.19181},"time":{"start":"2024-11-25T06:52:23Z","end":"2024-11-25T06:57:23Z"}}],"location":{"lat":23.0237,"lng":120.19181},"distance":68774},{"time":{"arrival":"2024-11-25T06:59:14Z","departure":"2024-11-25T07:04:14Z"},"load":[4],"activities":[{"jobId":"c000142","type":"delivery","location":{"lat":23.02865,"lng":120.19058},"time":{"start":"2024-11-25T06:59:14Z","end":"2024-11-25T07:04:14Z"}}],"location":{"lat":23.02865,"lng":120.19058},"distance":69382},{"time":{"arrival":"2024-11-25T07:16:55Z","departure":"2024-11-25T07:21:55Z"},"load":[3],"activities":[{"jobId":"c000056","type":"delivery","location":{"lat":22.98849,"lng":120.17317},"time":{"start":"2024-11-25T07:16:55Z","end":"2024-11-25T07:21:55Z"}}],"location":{"lat":22.98849,"lng":120.17317},"distance":75558},{"time":{"arrival":"2024-11-25T07:27:58Z","departure":"2024-11-25T07:32:58Z"},"load":[2],"activities":[{"jobId":"c000156","type":"delivery","location":{"lat":22.98102,"lng":120.19147},"time":{"start":"2024-11-25T07:27:58Z","end":"2024-11-25T07:32:58Z"}}],"location":{"lat":22.98102,"lng":120.19147},"distance":78106},{"time":{"arrival":"2024-11-25T07:40:35Z","departure":"2024-11-25T07:50:35Z"},"load":[1],"activities":[{"jobId":"c000099","type":"delivery","location":{"lat":22.97638,"lng":120.22119},"time":{"start":"2024-11-25T07:40:35Z","end":"2024-11-25T07:50:35Z"}}],"location":{"lat":22.97638,"lng":120.22119},"distance":81554},{"time":{"arrival":"2024-11-25T07:54:03Z","departure":"2024-11-25T08:04:03Z"},"load":[0],"activities":[{"jobId":"c000047","type":"delivery","location":{"lat":22.98225,"lng":120.22792},"time":{"start":"2024-11-25T07:54:03Z","end":"2024-11-25T08:04:03Z"}}],"location":{"lat":22.98225,"lng":120.22792},"distance":82854},{"time":{"arrival":"2024-11-25T08:52:18Z","departure":"2024-11-25T08:52:18Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T08:52:18Z","end":"2024-11-25T08:52:18Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":135075}],"statistic":{"cost":3376.895,"distance":135075,"duration":17538,"times":{"driving":10038,"serving":3900,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_1","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:00:00Z"},"load":[7],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:00:00Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T02:29:28Z","departure":"2024-11-25T02:39:28Z"},"load":[6],"activities":[{"jobId":"c000023","type":"delivery","location":{"lat":24.16563,"lng":120.6438},"time":{"start":"2024-11-25T02:29:28Z","end":"2024-11-25T02:39:28Z"}}],"location":{"lat":24.16563,"lng":120.6438},"distance":199244},{"time":{"arrival":"2024-11-25T02:41:24Z","departure":"2024-11-25T02:46:24Z"},"load":[5],"activities":[{"jobId":"c000080","type":"delivery","location":{"lat":24.16183,"lng":120.65072},"time":{"start":"2024-11-25T02:41:24Z","end":"2024-11-25T02:46:24Z"}}],"location":{"lat":24.16183,"lng":120.65072},"distance":200062},{"time":{"arrival":"2024-11-25T02:57:44Z","departure":"2024-11-25T03:07:44Z"},"load":[4],"activities":[{"jobId":"c000037","type":"delivery","location":{"lat":24.18456,"lng":120.62095},"time":{"start":"2024-11-25T02:57:44Z","end":"2024-11-25T03:07:44Z"}}],"location":{"lat":24.18456,"lng":120.62095},"distance":205515},{"time":{"arrival":"2024-11-25T03:10:35Z","departure":"2024-11-25T03:20:35Z"},"load":[3],"activities":[{"jobId":"c000157","type":"delivery","location":{"lat":24.18367,"lng":120.61457},"time":{"start":"2024-11-25T03:10:35Z","end":"2024-11-25T03:20:35Z"}}],"location":{"lat":24.18367,"lng":120.61457},"distance":206435},{"time":{"arrival":"2024-11-25T03:36:54Z","departure":"2024-11-25T03:41:54Z"},"load":[2],"activities":[{"jobId":"c000084","type":"delivery","location":{"lat":24.23578,"lng":120.55913},"time":{"start":"2024-11-25T03:36:54Z","end":"2024-11-25T03:41:54Z"}}],"location":{"lat":24.23578,"lng":120.55913},"distance":217449},{"time":{"arrival":"2024-11-25T04:16:35Z","departure":"2024-11-25T05:21:35Z"},"load":[1],"activities":[{"jobId":"c000112","type":"delivery","location":{"lat":24.05574,"lng":120.43347},"time":{"start":"2024-11-25T04:16:35Z","end":"2024-11-25T04:21:35Z"}},{"jobId":"break","type":"break","location":{"lat":24.05574,"lng":120.43347},"time":{"start":"2024-11-25T04:21:35Z","end":"2024-11-25T05:21:35Z"}}],"location":{"lat":24.05574,"lng":120.43347},"distance":247118},{"time":{"arrival":"2024-11-25T07:22:53Z","departure":"2024-11-25T07:27:53Z"},"load":[0],"activities":[{"jobId":"c000024","type":"delivery","location":{"lat":22.72697,"lng":120.32673},"time":{"start":"2024-11-25T07:22:53Z","end":"2024-11-25T07:27:53Z"}}],"location":{"lat":22.72697,"lng":120.32673},"distance":409721},{"time":{"arrival":"2024-11-25T07:53:23Z","departure":"2024-11-25T07:53:23Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T07:53:23Z","end":"2024-11-25T07:53:23Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":430664}],"statistic":{"cost":5289.4400000000005,"distance":430664,"duration":28403,"times":{"driving":21803,"serving":3000,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_8","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:00:00Z"},"load":[9],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:00:00Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T02:22:07Z","departure":"2024-11-25T02:32:07Z"},"load":[8],"activities":[{"jobId":"c000071","type":"delivery","location":{"lat":23.97505,"lng":120.68364},"time":{"start":"2024-11-25T02:22:07Z","end":"2024-11-25T02:32:07Z"}}],"location":{"lat":23.97505,"lng":120.68364},"distance":193962},{"time":{"arrival":"2024-11-25T02:53:56Z","departure":"2024-11-25T02:58:56Z"},"load":[7],"activities":[{"jobId":"c000102","type":"delivery","location":{"lat":24.10062,"lng":120.68234},"time":{"start":"2024-11-25T02:53:56Z","end":"2024-11-25T02:58:56Z"}}],"location":{"lat":24.10062,"lng":120.68234},"distance":212186},{"time":{"arrival":"2024-11-25T03:03:58Z","departure":"2024-11-25T03:13:58Z"},"load":[6],"activities":[{"jobId":"c000045","type":"delivery","location":{"lat":24.1104,"lng":120.69003},"time":{"start":"2024-11-25T03:03:58Z","end":"2024-11-25T03:13:58Z"}}],"location":{"lat":24.1104,"lng":120.69003},"distance":213925},{"time":{"arrival":"2024-11-25T03:25:42Z","departure":"2024-11-25T03:30:42Z"},"load":[5],"activities":[{"jobId":"c000022","type":"delivery","location":{"lat":24.14981,"lng":120.71283},"time":{"start":"2024-11-25T03:25:42Z","end":"2024-11-25T03:30:42Z"}}],"location":{"lat":24.14981,"lng":120.71283},"distance":219939},{"time":{"arrival":"2024-11-25T03:47:39Z","departure":"2024-11-25T03:52:39Z"},"load":[4],"activities":[{"jobId":"c000150","type":"delivery","location":{"lat":24.21387,"lng":120.70055},"time":{"start":"2024-11-25T03:47:39Z","end":"2024-11-25T03:52:39Z"}}],"location":{"lat":24.21387,"lng":120.70055},"distance":229300},{"time":{"arrival":"2024-11-25T04:05:52Z","departure":"2024-11-25T04:15:52Z"},"load":[3],"activities":[{"jobId":"c000103","type":"delivery","location":{"lat":24.25304,"lng":120.72189},"time":{"start":"2024-11-25T04:05:52Z","end":"2024-11-25T04:15:52Z"}}],"location":{"lat":24.25304,"lng":120.72189},"distance":234798},{"time":{"arrival":"2024-11-25T04:32:52Z","departure":"2024-11-25T04:42:52Z"},"load":[2],"activities":[{"jobId":"c000067","type":"delivery","location":{"lat":24.2254,"lng":120.64533},"time":{"start":"2024-11-25T04:32:52Z","end":"2024-11-25T04:42:52Z"}}],"location":{"lat":24.2254,"lng":120.64533},"distance":243419},{"time":{"arrival":"2024-11-25T04:51:11Z","departure":"2024-11-25T05:01:11Z"},"load":[1],"activities":[{"jobId":"c000081","type":"delivery","location":{"lat":24.18977,"lng":120.66255},"time":{"start":"2024-11-25T04:51:11Z","end":"2024-11-25T05:01:11Z"}}],"location":{"lat":24.18977,"lng":120.66255},"distance":247858},{"time":{"arrival":"2024-11-25T05:08:40Z","departure":"2024-11-25T05:18:40Z"},"load":[0],"activities":[{"jobId":"c000119","type":"delivery","location":{"lat":24.1748,"lng":120.66333},"time":{"start":"2024-11-25T05:08:40Z","end":"2024-11-25T05:18:40Z"}}],"location":{"lat":24.1748,"lng":120.66333},"distance":250991},{"time":{"arrival":"2024-11-25T07:50:53Z","departure":"2024-11-25T07:50:53Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T07:50:53Z","end":"2024-11-25T07:50:53Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":454796}],"statistic":{"cost":5404.1,"distance":454796,"duration":28253,"times":{"driving":23753,"serving":4500,"waiting":0,"stopping":0,"break":0}},"shiftIndex":0},{"vehicleId":"isuzu_8","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[4],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T05:48:22Z","departure":"2024-11-25T05:58:22Z"},"load":[3],"activities":[{"jobId":"c000135","type":"delivery","location":{"lat":25.06246,"lng":121.20148},"time":{"start":"2024-11-25T05:48:22Z","end":"2024-11-25T05:58:22Z"}}],"location":{"lat":25.06246,"lng":121.20148},"distance":41799},{"time":{"arrival":"2024-11-25T06:42:32Z","departure":"2024-11-25T06:52:32Z"},"load":[2],"activities":[{"jobId":"c000159","type":"delivery","location":{"lat":24.8678,"lng":120.99374},"time":{"start":"2024-11-25T06:42:32Z","end":"2024-11-25T06:52:32Z"}}],"location":{"lat":24.8678,"lng":120.99374},"distance":82077},{"time":{"arrival":"2024-11-25T07:10:32Z","departure":"2024-11-25T07:15:32Z"},"load":[1],"activities":[{"jobId":"c000158","type":"delivery","location":{"lat":24.81074,"lng":121.02149},"time":{"start":"2024-11-25T07:10:32Z","end":"2024-11-25T07:15:32Z"}}],"location":{"lat":24.81074,"lng":121.02149},"distance":91591},{"time":{"arrival":"2024-11-25T08:39:26Z","departure":"2024-11-25T08:49:26Z"},"load":[0],"activities":[{"jobId":"c000011","type":"delivery","location":{"lat":25.04721,"lng":121.54245},"time":{"start":"2024-11-25T08:39:26Z","end":"2024-11-25T08:49:26Z"}}],"location":{"lat":25.04721,"lng":121.54245},"distance":165812},{"time":{"arrival":"2024-11-25T08:57:38Z","departure":"2024-11-25T08:57:38Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:57:38Z","end":"2024-11-25T08:57:38Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":168579}],"statistic":{"cost":2863.63,"distance":168579,"duration":17858,"times":{"driving":12158,"serving":2100,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_7","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:05:03Z"},"load":[5],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:05:03Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T01:24:51Z","departure":"2024-11-25T01:29:51Z"},"load":[4],"activities":[{"jobId":"c000120","type":"delivery","location":{"lat":23.3072,"lng":120.31611},"time":{"start":"2024-11-25T01:24:51Z","end":"2024-11-25T01:29:51Z"}}],"location":{"lat":23.3072,"lng":120.31611},"distance":90466},{"time":{"arrival":"2024-11-25T02:42:13Z","departure":"2024-11-25T02:52:13Z"},"load":[3],"activities":[{"jobId":"c000043","type":"delivery","location":{"lat":24.06824,"lng":120.54014},"time":{"start":"2024-11-25T02:42:13Z","end":"2024-11-25T02:52:13Z"}}],"location":{"lat":24.06824,"lng":120.54014},"distance":185666},{"time":{"arrival":"2024-11-25T02:57:08Z","departure":"2024-11-25T03:02:08Z"},"load":[2],"activities":[{"jobId":"c000140","type":"delivery","location":{"lat":24.07694,"lng":120.53719},"time":{"start":"2024-11-25T02:57:08Z","end":"2024-11-25T03:02:08Z"}}],"location":{"lat":24.07694,"lng":120.53719},"distance":187297},{"time":{"arrival":"2024-11-25T03:08:35Z","departure":"2024-11-25T03:13:35Z"},"load":[1],"activities":[{"jobId":"c000020","type":"delivery","location":{"lat":24.09398,"lng":120.54057},"time":{"start":"2024-11-25T03:08:35Z","end":"2024-11-25T03:13:35Z"}}],"location":{"lat":24.09398,"lng":120.54057},"distance":190635},{"time":{"arrival":"2024-11-25T03:50:00Z","departure":"2024-11-25T05:00:00Z"},"load":[0],"activities":[{"jobId":"c000061","type":"delivery","location":{"lat":24.33462,"lng":120.61525},"time":{"start":"2024-11-25T03:50:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":24.33462,"lng":120.61525},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":24.33462,"lng":120.61525},"distance":227627},{"time":{"arrival":"2024-11-25T07:39:02Z","departure":"2024-11-25T07:39:02Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T07:39:02Z","end":"2024-11-25T07:39:02Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":446836}],"statistic":{"cost":5323.74,"distance":446836,"duration":27239,"times":{"driving":21539,"serving":2100,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_3","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[5],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T05:36:22Z","departure":"2024-11-25T05:41:22Z"},"load":[4],"activities":[{"jobId":"c000066","type":"delivery","location":{"lat":25.04407,"lng":121.29408},"time":{"start":"2024-11-25T05:36:22Z","end":"2024-11-25T05:41:22Z"}}],"location":{"lat":25.04407,"lng":121.29408},"distance":29618},{"time":{"arrival":"2024-11-25T06:04:40Z","departure":"2024-11-25T06:09:40Z"},"load":[3],"activities":[{"jobId":"c000048","type":"delivery","location":{"lat":24.95537,"lng":121.22162},"time":{"start":"2024-11-25T06:04:40Z","end":"2024-11-25T06:09:40Z"}}],"location":{"lat":24.95537,"lng":121.22162},"distance":43841},{"time":{"arrival":"2024-11-25T06:31:18Z","departure":"2024-11-25T06:36:18Z"},"load":[2],"activities":[{"jobId":"c000160","type":"delivery","location":{"lat":24.86458,"lng":121.211},"time":{"start":"2024-11-25T06:31:18Z","end":"2024-11-25T06:36:18Z"}}],"location":{"lat":24.86458,"lng":121.211},"distance":54643},{"time":{"arrival":"2024-11-25T07:54:48Z","departure":"2024-11-25T07:59:48Z"},"load":[1],"activities":[{"jobId":"c000090","type":"delivery","location":{"lat":25.12979,"lng":121.74067},"time":{"start":"2024-11-25T07:54:48Z","end":"2024-11-25T07:59:48Z"}}],"location":{"lat":25.12979,"lng":121.74067},"distance":127434},{"time":{"arrival":"2024-11-25T08:04:45Z","departure":"2024-11-25T08:09:45Z"},"load":[0],"activities":[{"jobId":"c000046","type":"delivery","location":{"lat":25.12789,"lng":121.75095},"time":{"start":"2024-11-25T08:04:45Z","end":"2024-11-25T08:09:45Z"}}],"location":{"lat":25.12789,"lng":121.75095},"distance":128713},{"time":{"arrival":"2024-11-25T08:49:45Z","departure":"2024-11-25T08:49:45Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:49:45Z","end":"2024-11-25T08:49:45Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":152738}],"statistic":{"cost":2784.657,"distance":152738,"duration":17385,"times":{"driving":12285,"serving":1500,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_4","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:00:00Z"},"load":[7],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:00:00Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T02:17:39Z","departure":"2024-11-25T02:27:39Z"},"load":[6],"activities":[{"jobId":"c000003","type":"delivery","location":{"lat":23.95943,"lng":120.57111},"time":{"start":"2024-11-25T02:17:39Z","end":"2024-11-25T02:27:39Z"}}],"location":{"lat":23.95943,"lng":120.57111},"distance":172418},{"time":{"arrival":"2024-11-25T03:03:17Z","departure":"2024-11-25T03:08:17Z"},"load":[5],"activities":[{"jobId":"c000094","type":"delivery","location":{"lat":24.14006,"lng":120.65156},"time":{"start":"2024-11-25T03:03:17Z","end":"2024-11-25T03:08:17Z"}}],"location":{"lat":24.14006,"lng":120.65156},"distance":200164},{"time":{"arrival":"2024-11-25T03:14:23Z","departure":"2024-11-25T03:24:23Z"},"load":[4],"activities":[{"jobId":"c000063","type":"delivery","location":{"lat":24.15036,"lng":120.67641},"time":{"start":"2024-11-25T03:14:23Z","end":"2024-11-25T03:24:23Z"}}],"location":{"lat":24.15036,"lng":120.67641},"distance":203174},{"time":{"arrival":"2024-11-25T03:32:28Z","departure":"2024-11-25T03:42:28Z"},"load":[3],"activities":[{"jobId":"c000113","type":"delivery","location":{"lat":24.17624,"lng":120.69952},"time":{"start":"2024-11-25T03:32:28Z","end":"2024-11-25T03:42:28Z"}}],"location":{"lat":24.17624,"lng":120.69952},"distance":207103},{"time":{"arrival":"2024-11-25T03:49:27Z","departure":"2024-11-25T03:59:27Z"},"load":[2],"activities":[{"jobId":"c000093","type":"delivery","location":{"lat":24.17358,"lng":120.67646},"time":{"start":"2024-11-25T03:49:27Z","end":"2024-11-25T03:59:27Z"}}],"location":{"lat":24.17358,"lng":120.67646},"distance":210513},{"time":{"arrival":"2024-11-25T04:15:13Z","departure":"2024-11-25T04:20:13Z"},"load":[1],"activities":[{"jobId":"c000036","type":"delivery","location":{"lat":24.11732,"lng":120.658},"time":{"start":"2024-11-25T04:15:13Z","end":"2024-11-25T04:20:13Z"}}],"location":{"lat":24.11732,"lng":120.658},"distance":218785},{"time":{"arrival":"2024-11-25T04:24:22Z","departure":"2024-11-25T05:34:22Z"},"load":[0],"activities":[{"jobId":"c000125","type":"delivery","location":{"lat":24.10725,"lng":120.63624},"time":{"start":"2024-11-25T04:24:22Z","end":"2024-11-25T04:34:22Z"}},{"jobId":"break","type":"break","location":{"lat":24.10725,"lng":120.63624},"time":{"start":"2024-11-25T04:34:22Z","end":"2024-11-25T05:34:22Z"}}],"location":{"lat":24.10725,"lng":120.63624},"distance":221296},{"time":{"arrival":"2024-11-25T07:59:07Z","departure":"2024-11-25T07:59:07Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T07:59:07Z","end":"2024-11-25T07:59:07Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":416599}],"statistic":{"cost":5232.875,"distance":416599,"duration":28747,"times":{"driving":21547,"serving":3600,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_5","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:37:05Z"},"load":[11],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:37:05Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T01:17:58Z","departure":"2024-11-25T01:27:58Z"},"load":[10],"activities":[{"jobId":"c000073","type":"delivery","location":{"lat":25.01499,"lng":121.30609},"time":{"start":"2024-11-25T01:17:58Z","end":"2024-11-25T01:27:58Z"}}],"location":{"lat":25.01499,"lng":121.30609},"distance":31982},{"time":{"arrival":"2024-11-25T01:41:43Z","departure":"2024-11-25T01:51:43Z"},"load":[9],"activities":[{"jobId":"c000059","type":"delivery","location":{"lat":25.05292,"lng":121.28768},"time":{"start":"2024-11-25T01:41:43Z","end":"2024-11-25T01:51:43Z"}}],"location":{"lat":25.05292,"lng":121.28768},"distance":37306},{"time":{"arrival":"2024-11-25T02:17:08Z","departure":"2024-11-25T02:22:08Z"},"load":[8],"activities":[{"jobId":"c000034","type":"delivery","location":{"lat":24.96236,"lng":121.25531},"time":{"start":"2024-11-25T02:17:08Z","end":"2024-11-25T02:22:08Z"}}],"location":{"lat":24.96236,"lng":121.25531},"distance":51637},{"time":{"arrival":"2024-11-25T02:31:00Z","departure":"2024-11-25T02:41:00Z"},"load":[7],"activities":[{"jobId":"c000075","type":"delivery","location":{"lat":24.95413,"lng":121.22565},"time":{"start":"2024-11-25T02:31:00Z","end":"2024-11-25T02:41:00Z"}}],"location":{"lat":24.95413,"lng":121.22565},"distance":55409},{"time":{"arrival":"2024-11-25T02:57:42Z","departure":"2024-11-25T03:07:42Z"},"load":[6],"activities":[{"jobId":"c000027","type":"delivery","location":{"lat":24.90889,"lng":121.16696},"time":{"start":"2024-11-25T02:57:42Z","end":"2024-11-25T03:07:42Z"}}],"location":{"lat":24.90889,"lng":121.16696},"distance":63695},{"time":{"arrival":"2024-11-25T03:12:59Z","departure":"2024-11-25T03:17:59Z"},"load":[5],"activities":[{"jobId":"c000146","type":"delivery","location":{"lat":24.9104,"lng":121.14567},"time":{"start":"2024-11-25T03:12:59Z","end":"2024-11-25T03:17:59Z"}}],"location":{"lat":24.9104,"lng":121.14567},"distance":66240},{"time":{"arrival":"2024-11-25T03:32:10Z","departure":"2024-11-25T03:37:10Z"},"load":[4],"activities":[{"jobId":"c000050","type":"delivery","location":{"lat":24.95739,"lng":121.20469},"time":{"start":"2024-11-25T03:32:10Z","end":"2024-11-25T03:37:10Z"}}],"location":{"lat":24.95739,"lng":121.20469},"distance":76182},{"time":{"arrival":"2024-11-25T04:19:28Z","departure":"2024-11-25T05:24:28Z"},"load":[3],"activities":[{"jobId":"c000030","type":"delivery","location":{"lat":24.69083,"lng":120.91315},"time":{"start":"2024-11-25T04:19:28Z","end":"2024-11-25T04:24:28Z"}},{"jobId":"break","type":"break","location":{"lat":24.69083,"lng":120.91315},"time":{"start":"2024-11-25T04:24:28Z","end":"2024-11-25T05:24:28Z"}}],"location":{"lat":24.69083,"lng":120.91315},"distance":125608},{"time":{"arrival":"2024-11-25T05:49:12Z","departure":"2024-11-25T05:59:12Z"},"load":[2],"activities":[{"jobId":"c000089","type":"delivery","location":{"lat":24.55175,"lng":120.81604},"time":{"start":"2024-11-25T05:49:12Z","end":"2024-11-25T05:59:12Z"}}],"location":{"lat":24.55175,"lng":120.81604},"distance":151811},{"time":{"arrival":"2024-11-25T06:56:04Z","departure":"2024-11-25T07:06:04Z"},"load":[1],"activities":[{"jobId":"c000029","type":"delivery","location":{"lat":24.86839,"lng":121.21836},"time":{"start":"2024-11-25T06:56:04Z","end":"2024-11-25T07:06:04Z"}}],"location":{"lat":24.86839,"lng":121.21836},"distance":222941},{"time":{"arrival":"2024-11-25T07:49:52Z","departure":"2024-11-25T07:59:52Z"},"load":[0],"activities":[{"jobId":"c000025","type":"delivery","location":{"lat":25.0447,"lng":121.45266},"time":{"start":"2024-11-25T07:49:52Z","end":"2024-11-25T07:59:52Z"}}],"location":{"lat":25.0447,"lng":121.45266},"distance":262006},{"time":{"arrival":"2024-11-25T08:26:30Z","departure":"2024-11-25T08:26:30Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:26:30Z","end":"2024-11-25T08:26:30Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":274327}],"statistic":{"cost":3626.753,"distance":274327,"duration":28165,"times":{"driving":19165,"serving":5400,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_9","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:23:45Z"},"load":[2],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:23:45Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T02:00:05Z","departure":"2024-11-25T02:10:05Z"},"load":[1],"activities":[{"jobId":"c000009","type":"delivery","location":{"lat":23.47376,"lng":120.44832},"time":{"start":"2024-11-25T02:00:05Z","end":"2024-11-25T02:10:05Z"}}],"location":{"lat":23.47376,"lng":120.44832},"distance":122911},{"time":{"arrival":"2024-11-25T03:50:00Z","departure":"2024-11-25T05:00:00Z"},"load":[0],"activities":[{"jobId":"c000087","type":"delivery","location":{"lat":23.96371,"lng":120.96889},"time":{"start":"2024-11-25T03:50:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":23.96371,"lng":120.96889},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":23.96371,"lng":120.96889},"distance":243827},{"time":{"arrival":"2024-11-25T07:57:15Z","departure":"2024-11-25T07:57:15Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T07:57:15Z","end":"2024-11-25T07:57:15Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":479141}],"statistic":{"cost":5484.105,"distance":479141,"duration":27210,"times":{"driving":22410,"serving":1200,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_10","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:52:33Z"},"load":[6],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:52:33Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T02:59:04Z","departure":"2024-11-25T03:09:04Z"},"load":[5],"activities":[{"jobId":"c000033","type":"delivery","location":{"lat":24.75614,"lng":121.75809},"time":{"start":"2024-11-25T02:59:04Z","end":"2024-11-25T03:09:04Z"}}],"location":{"lat":24.75614,"lng":121.75809},"distance":75785},{"time":{"arrival":"2024-11-25T03:11:04Z","departure":"2024-11-25T03:16:04Z"},"load":[4],"activities":[{"jobId":"c000152","type":"delivery","location":{"lat":24.75487,"lng":121.75482},"time":{"start":"2024-11-25T03:11:04Z","end":"2024-11-25T03:16:04Z"}}],"location":{"lat":24.75487,"lng":121.75482},"distance":76242},{"time":{"arrival":"2024-11-25T03:18:14Z","departure":"2024-11-25T03:23:14Z"},"load":[3],"activities":[{"jobId":"c000028","type":"delivery","location":{"lat":24.75405,"lng":121.74993},"time":{"start":"2024-11-25T03:18:14Z","end":"2024-11-25T03:23:14Z"}}],"location":{"lat":24.75405,"lng":121.74993},"distance":76854},{"time":{"arrival":"2024-11-25T03:38:07Z","departure":"2024-11-25T03:48:07Z"},"load":[2],"activities":[{"jobId":"c000143","type":"delivery","location":{"lat":24.67959,"lng":121.769},"time":{"start":"2024-11-25T03:38:07Z","end":"2024-11-25T03:48:07Z"}}],"location":{"lat":24.67959,"lng":121.769},"distance":86088},{"time":{"arrival":"2024-11-25T03:50:00Z","departure":"2024-11-25T05:00:00Z"},"load":[1],"activities":[{"jobId":"c000053","type":"delivery","location":{"lat":24.67627,"lng":121.76674},"time":{"start":"2024-11-25T03:50:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":24.67627,"lng":121.76674},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":24.67627,"lng":121.76674},"distance":86619},{"time":{"arrival":"2024-11-25T07:28:57Z","departure":"2024-11-25T07:33:57Z"},"load":[0],"activities":[{"jobId":"c000138","type":"delivery","location":{"lat":25.0363,"lng":121.55691},"time":{"start":"2024-11-25T07:28:57Z","end":"2024-11-25T07:33:57Z"}}],"location":{"lat":25.0363,"lng":121.55691},"distance":178052},{"time":{"arrival":"2024-11-25T07:44:52Z","departure":"2024-11-25T07:44:52Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T07:44:52Z","end":"2024-11-25T07:44:52Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":182177}],"statistic":{"cost":3145.0950000000003,"distance":182177,"duration":24739,"times":{"driving":18439,"serving":2700,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_9","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[11],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T05:24:06Z","departure":"2024-11-25T05:34:06Z"},"load":[10],"activities":[{"jobId":"c000107","type":"delivery","location":{"lat":25.05904,"lng":121.43136},"time":{"start":"2024-11-25T05:24:06Z","end":"2024-11-25T05:34:06Z"}}],"location":{"lat":25.05904,"lng":121.43136},"distance":15303},{"time":{"arrival":"2024-11-25T05:50:50Z","departure":"2024-11-25T06:00:50Z"},"load":[9],"activities":[{"jobId":"c000051","type":"delivery","location":{"lat":25.06991,"lng":121.37173},"time":{"start":"2024-11-25T05:50:50Z","end":"2024-11-25T06:00:50Z"}}],"location":{"lat":25.06991,"lng":121.37173},"distance":23192},{"time":{"arrival":"2024-11-25T06:08:08Z","departure":"2024-11-25T06:13:08Z"},"load":[8],"activities":[{"jobId":"c000060","type":"delivery","location":{"lat":25.05909,"lng":121.36743},"time":{"start":"2024-11-25T06:08:08Z","end":"2024-11-25T06:13:08Z"}}],"location":{"lat":25.05909,"lng":121.36743},"distance":25313},{"time":{"arrival":"2024-11-25T06:31:31Z","departure":"2024-11-25T06:36:31Z"},"load":[7],"activities":[{"jobId":"c000068","type":"delivery","location":{"lat":25.02345,"lng":121.42558},"time":{"start":"2024-11-25T06:31:31Z","end":"2024-11-25T06:36:31Z"}}],"location":{"lat":25.02345,"lng":121.42558},"distance":33719},{"time":{"arrival":"2024-11-25T06:41:18Z","departure":"2024-11-25T06:46:18Z"},"load":[6],"activities":[{"jobId":"c000134","type":"delivery","location":{"lat":25.03231,"lng":121.43346},"time":{"start":"2024-11-25T06:41:18Z","end":"2024-11-25T06:46:18Z"}}],"location":{"lat":25.03231,"lng":121.43346},"distance":35553},{"time":{"arrival":"2024-11-25T06:58:05Z","departure":"2024-11-25T07:03:05Z"},"load":[5],"activities":[{"jobId":"c000100","type":"delivery","location":{"lat":24.99192,"lng":121.4237},"time":{"start":"2024-11-25T06:58:05Z","end":"2024-11-25T07:03:05Z"}}],"location":{"lat":24.99192,"lng":121.4237},"distance":40626},{"time":{"arrival":"2024-11-25T07:13:53Z","departure":"2024-11-25T07:23:53Z"},"load":[4],"activities":[{"jobId":"c000007","type":"delivery","location":{"lat":24.98545,"lng":121.45267},"time":{"start":"2024-11-25T07:13:53Z","end":"2024-11-25T07:23:53Z"}}],"location":{"lat":24.98545,"lng":121.45267},"distance":44958},{"time":{"arrival":"2024-11-25T07:27:55Z","departure":"2024-11-25T07:37:55Z"},"load":[3],"activities":[{"jobId":"c000115","type":"delivery","location":{"lat":24.98584,"lng":121.46398},"time":{"start":"2024-11-25T07:27:55Z","end":"2024-11-25T07:37:55Z"}}],"location":{"lat":24.98584,"lng":121.46398},"distance":46386},{"time":{"arrival":"2024-11-25T07:38:08Z","departure":"2024-11-25T07:48:08Z"},"load":[2],"activities":[{"jobId":"c000017","type":"delivery","location":{"lat":24.98616,"lng":121.46479},"time":{"start":"2024-11-25T07:38:08Z","end":"2024-11-25T07:48:08Z"}}],"location":{"lat":24.98616,"lng":121.46479},"distance":46476},{"time":{"arrival":"2024-11-25T07:58:52Z","departure":"2024-11-25T08:08:52Z"},"load":[1],"activities":[{"jobId":"c000129","type":"delivery","location":{"lat":25.00961,"lng":121.46117},"time":{"start":"2024-11-25T07:58:52Z","end":"2024-11-25T08:08:52Z"}}],"location":{"lat":25.00961,"lng":121.46117},"distance":50047},{"time":{"arrival":"2024-11-25T08:16:32Z","departure":"2024-11-25T08:26:32Z"},"load":[0],"activities":[{"jobId":"c000091","type":"delivery","location":{"lat":25.02277,"lng":121.46726},"time":{"start":"2024-11-25T08:16:32Z","end":"2024-11-25T08:26:32Z"}}],"location":{"lat":25.02277,"lng":121.46726},"distance":52262},{"time":{"arrival":"2024-11-25T08:55:26Z","departure":"2024-11-25T08:55:26Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:55:26Z","end":"2024-11-25T08:55:26Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":65476}],"statistic":{"cost":2446.862,"distance":65476,"duration":17726,"times":{"driving":8726,"serving":5400,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_1","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[8],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T05:26:46Z","departure":"2024-11-25T05:31:46Z"},"load":[7],"activities":[{"jobId":"c000014","type":"delivery","location":{"lat":25.14038,"lng":121.45975},"time":{"start":"2024-11-25T05:26:46Z","end":"2024-11-25T05:31:46Z"}}],"location":{"lat":25.14038,"lng":121.45975},"distance":17001},{"time":{"arrival":"2024-11-25T05:38:48Z","departure":"2024-11-25T05:43:48Z"},"load":[6],"activities":[{"jobId":"c000132","type":"delivery","location":{"lat":25.16965,"lng":121.44437},"time":{"start":"2024-11-25T05:38:48Z","end":"2024-11-25T05:43:48Z"}}],"location":{"lat":25.16965,"lng":121.44437},"distance":20972},{"time":{"arrival":"2024-11-25T05:48:35Z","departure":"2024-11-25T05:58:35Z"},"load":[5],"activities":[{"jobId":"c000101","type":"delivery","location":{"lat":25.17742,"lng":121.44318},"time":{"start":"2024-11-25T05:48:35Z","end":"2024-11-25T05:58:35Z"}}],"location":{"lat":25.17742,"lng":121.44318},"distance":22368},{"time":{"arrival":"2024-11-25T07:00:35Z","departure":"2024-11-25T07:05:35Z"},"load":[4],"activities":[{"jobId":"c000106","type":"delivery","location":{"lat":24.99061,"lng":121.31294},"time":{"start":"2024-11-25T07:00:35Z","end":"2024-11-25T07:05:35Z"}}],"location":{"lat":24.99061,"lng":121.31294},"distance":56009},{"time":{"arrival":"2024-11-25T07:12:19Z","departure":"2024-11-25T07:17:19Z"},"load":[3],"activities":[{"jobId":"c000092","type":"delivery","location":{"lat":24.99077,"lng":121.2904},"time":{"start":"2024-11-25T07:12:19Z","end":"2024-11-25T07:17:19Z"}}],"location":{"lat":24.99077,"lng":121.2904},"distance":58646},{"time":{"arrival":"2024-11-25T07:24:10Z","departure":"2024-11-25T07:29:10Z"},"load":[2],"activities":[{"jobId":"c000042","type":"delivery","location":{"lat":25.01052,"lng":121.2969},"time":{"start":"2024-11-25T07:24:10Z","end":"2024-11-25T07:29:10Z"}}],"location":{"lat":25.01052,"lng":121.2969},"distance":61611},{"time":{"arrival":"2024-11-25T07:40:07Z","departure":"2024-11-25T07:45:07Z"},"load":[1],"activities":[{"jobId":"c000136","type":"delivery","location":{"lat":24.98354,"lng":121.31872},"time":{"start":"2024-11-25T07:40:07Z","end":"2024-11-25T07:45:07Z"}}],"location":{"lat":24.98354,"lng":121.31872},"distance":66467},{"time":{"arrival":"2024-11-25T08:05:11Z","departure":"2024-11-25T08:10:11Z"},"load":[0],"activities":[{"jobId":"c000110","type":"delivery","location":{"lat":24.94458,"lng":121.37405},"time":{"start":"2024-11-25T08:05:11Z","end":"2024-11-25T08:10:11Z"}}],"location":{"lat":24.94458,"lng":121.37405},"distance":75905},{"time":{"arrival":"2024-11-25T08:59:17Z","departure":"2024-11-25T08:59:17Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:59:17Z","end":"2024-11-25T08:59:17Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":103219}],"statistic":{"cost":2605.4570000000003,"distance":103219,"duration":17957,"times":{"driving":11657,"serving":2700,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_7","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[4],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T06:16:31Z","departure":"2024-11-25T06:21:31Z"},"load":[3],"activities":[{"jobId":"c000076","type":"delivery","location":{"lat":24.82645,"lng":121.01085},"time":{"start":"2024-11-25T06:16:31Z","end":"2024-11-25T06:21:31Z"}}],"location":{"lat":24.82645,"lng":121.01085},"distance":71906},{"time":{"arrival":"2024-11-25T06:30:42Z","departure":"2024-11-25T06:35:42Z"},"load":[2],"activities":[{"jobId":"c000128","type":"delivery","location":{"lat":24.78667,"lng":121.01074},"time":{"start":"2024-11-25T06:30:42Z","end":"2024-11-25T06:35:42Z"}}],"location":{"lat":24.78667,"lng":121.01074},"distance":77123},{"time":{"arrival":"2024-11-25T07:19:56Z","departure":"2024-11-25T07:29:56Z"},"load":[1],"activities":[{"jobId":"c000147","type":"delivery","location":{"lat":24.97461,"lng":121.26382},"time":{"start":"2024-11-25T07:19:56Z","end":"2024-11-25T07:29:56Z"}}],"location":{"lat":24.97461,"lng":121.26382},"distance":118016},{"time":{"arrival":"2024-11-25T07:45:17Z","departure":"2024-11-25T07:50:17Z"},"load":[0],"activities":[{"jobId":"c000072","type":"delivery","location":{"lat":24.95411,"lng":121.29861},"time":{"start":"2024-11-25T07:45:17Z","end":"2024-11-25T07:50:17Z"}}],"location":{"lat":24.95411,"lng":121.29861},"distance":123750},{"time":{"arrival":"2024-11-25T08:51:49Z","departure":"2024-11-25T08:51:49Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:51:49Z","end":"2024-11-25T08:51:49Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":161714}],"statistic":{"cost":2824.6530000000002,"distance":161714,"duration":17509,"times":{"driving":12409,"serving":1500,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"isuzu_4","typeId":"isuzu","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T05:00:00Z"},"load":[6],"activities":[{"jobId":"departure","type":"departure","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":0},{"time":{"arrival":"2024-11-25T06:19:23Z","departure":"2024-11-25T06:29:23Z"},"load":[5],"activities":[{"jobId":"c000145","type":"delivery","location":{"lat":24.79592,"lng":120.99814},"time":{"start":"2024-11-25T06:19:23Z","end":"2024-11-25T06:29:23Z"}}],"location":{"lat":24.79592,"lng":120.99814},"distance":75758},{"time":{"arrival":"2024-11-25T06:33:02Z","departure":"2024-11-25T06:38:02Z"},"load":[4],"activities":[{"jobId":"c000026","type":"delivery","location":{"lat":24.80531,"lng":120.9862},"time":{"start":"2024-11-25T06:33:02Z","end":"2024-11-25T06:38:02Z"}}],"location":{"lat":24.80531,"lng":120.9862},"distance":77581},{"time":{"arrival":"2024-11-25T06:43:31Z","departure":"2024-11-25T06:53:31Z"},"load":[3],"activities":[{"jobId":"c000031","type":"delivery","location":{"lat":24.81355,"lng":120.97438},"time":{"start":"2024-11-25T06:43:31Z","end":"2024-11-25T06:53:31Z"}}],"location":{"lat":24.81355,"lng":120.97438},"distance":79575},{"time":{"arrival":"2024-11-25T07:04:49Z","departure":"2024-11-25T07:09:49Z"},"load":[2],"activities":[{"jobId":"c000126","type":"delivery","location":{"lat":24.81657,"lng":121.02569},"time":{"start":"2024-11-25T07:04:49Z","end":"2024-11-25T07:09:49Z"}}],"location":{"lat":24.81657,"lng":121.02569},"distance":86189},{"time":{"arrival":"2024-11-25T07:25:23Z","departure":"2024-11-25T07:30:23Z"},"load":[1],"activities":[{"jobId":"c000096","type":"delivery","location":{"lat":24.7428,"lng":121.08422},"time":{"start":"2024-11-25T07:25:23Z","end":"2024-11-25T07:30:23Z"}}],"location":{"lat":24.7428,"lng":121.08422},"distance":98726},{"time":{"arrival":"2024-11-25T08:39:44Z","departure":"2024-11-25T08:44:44Z"},"load":[0],"activities":[{"jobId":"c000016","type":"delivery","location":{"lat":25.04663,"lng":121.51537},"time":{"start":"2024-11-25T08:39:44Z","end":"2024-11-25T08:44:44Z"}}],"location":{"lat":25.04663,"lng":121.51537},"distance":165103},{"time":{"arrival":"2024-11-25T08:58:14Z","departure":"2024-11-25T08:58:14Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":25.0633628527129,"lng":121.5517443657892},"time":{"start":"2024-11-25T08:58:14Z","end":"2024-11-25T08:58:14Z"}}],"location":{"lat":25.0633628527129,"lng":121.5517443657892},"distance":170875}],"statistic":{"cost":2874.002,"distance":170875,"duration":17894,"times":{"driving":11894,"serving":2400,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_10","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:32:03Z"},"load":[6],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:32:03Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T01:00:00Z","departure":"2024-11-25T01:10:00Z"},"load":[5],"activities":[{"jobId":"c000139","type":"delivery","location":{"lat":22.71883,"lng":120.2918},"time":{"start":"2024-11-25T01:00:00Z","end":"2024-11-25T01:10:00Z"}}],"location":{"lat":22.71883,"lng":120.2918},"distance":21403},{"time":{"arrival":"2024-11-25T01:29:06Z","departure":"2024-11-25T01:34:06Z"},"load":[4],"activities":[{"jobId":"c000012","type":"delivery","location":{"lat":22.79388,"lng":120.29578},"time":{"start":"2024-11-25T01:29:06Z","end":"2024-11-25T01:34:06Z"}}],"location":{"lat":22.79388,"lng":120.29578},"distance":32233},{"time":{"arrival":"2024-11-25T02:53:16Z","departure":"2024-11-25T03:03:16Z"},"load":[3],"activities":[{"jobId":"c000005","type":"delivery","location":{"lat":23.49499,"lng":120.45175},"time":{"start":"2024-11-25T02:53:16Z","end":"2024-11-25T03:03:16Z"}}],"location":{"lat":23.49499,"lng":120.45175},"distance":125039},{"time":{"arrival":"2024-11-25T04:34:11Z","departure":"2024-11-25T04:44:11Z"},"load":[2],"activities":[{"jobId":"c000111","type":"delivery","location":{"lat":22.68354,"lng":120.48985},"time":{"start":"2024-11-25T04:34:11Z","end":"2024-11-25T04:44:11Z"}}],"location":{"lat":22.68354,"lng":120.48985},"distance":235237},{"time":{"arrival":"2024-11-25T04:49:34Z","departure":"2024-11-25T05:59:34Z"},"load":[1],"activities":[{"jobId":"c000083","type":"delivery","location":{"lat":22.67053,"lng":120.48713},"time":{"start":"2024-11-25T04:49:34Z","end":"2024-11-25T04:59:34Z"}},{"jobId":"break","type":"break","location":{"lat":22.67053,"lng":120.48713},"time":{"start":"2024-11-25T04:59:34Z","end":"2024-11-25T05:59:34Z"}}],"location":{"lat":22.67053,"lng":120.48713},"distance":237175},{"time":{"arrival":"2024-11-25T06:23:19Z","departure":"2024-11-25T06:33:19Z"},"load":[0],"activities":[{"jobId":"c000019","type":"delivery","location":{"lat":22.62448,"lng":120.35702},"time":{"start":"2024-11-25T06:23:19Z","end":"2024-11-25T06:33:19Z"}}],"location":{"lat":22.62448,"lng":120.35702},"distance":252968},{"time":{"arrival":"2024-11-25T06:52:55Z","departure":"2024-11-25T06:52:55Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T06:52:55Z","end":"2024-11-25T06:52:55Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":262563}],"statistic":{"cost":4226.895,"distance":262563,"duration":22852,"times":{"driving":15952,"serving":3300,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0},{"vehicleId":"mitsubishi_5","typeId":"mitsubishi","stops":[{"time":{"arrival":"2024-11-25T00:00:00Z","departure":"2024-11-25T00:11:57Z"},"load":[5],"activities":[{"jobId":"departure","type":"departure","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T00:00:00Z","end":"2024-11-25T00:11:57Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":0},{"time":{"arrival":"2024-11-25T01:47:55Z","departure":"2024-11-25T01:57:55Z"},"load":[4],"activities":[{"jobId":"c000065","type":"delivery","location":{"lat":23.4795,"lng":120.42925},"time":{"start":"2024-11-25T01:47:55Z","end":"2024-11-25T01:57:55Z"}}],"location":{"lat":23.4795,"lng":120.42925},"distance":116100},{"time":{"arrival":"2024-11-25T03:01:52Z","departure":"2024-11-25T03:11:52Z"},"load":[3],"activities":[{"jobId":"c000131","type":"delivery","location":{"lat":23.91154,"lng":120.67872},"time":{"start":"2024-11-25T03:01:52Z","end":"2024-11-25T03:11:52Z"}}],"location":{"lat":23.91154,"lng":120.67872},"distance":194334},{"time":{"arrival":"2024-11-25T03:50:00Z","departure":"2024-11-25T05:00:00Z"},"load":[2],"activities":[{"jobId":"c000105","type":"delivery","location":{"lat":23.70126,"lng":120.53708},"time":{"start":"2024-11-25T03:50:00Z","end":"2024-11-25T04:00:00Z"}},{"jobId":"break","type":"break","location":{"lat":23.70126,"lng":120.53708},"time":{"start":"2024-11-25T04:00:00Z","end":"2024-11-25T05:00:00Z"}}],"location":{"lat":23.70126,"lng":120.53708},"distance":236379},{"time":{"arrival":"2024-11-25T05:20:24Z","departure":"2024-11-25T05:30:24Z"},"load":[1],"activities":[{"jobId":"c000095","type":"delivery","location":{"lat":23.70955,"lng":120.43659},"time":{"start":"2024-11-25T05:20:24Z","end":"2024-11-25T05:30:24Z"}}],"location":{"lat":23.70955,"lng":120.43659},"distance":249234},{"time":{"arrival":"2024-11-25T06:37:05Z","departure":"2024-11-25T06:47:05Z"},"load":[0],"activities":[{"jobId":"c000121","type":"delivery","location":{"lat":23.12865,"lng":120.2929},"time":{"start":"2024-11-25T06:37:05Z","end":"2024-11-25T06:47:05Z"}}],"location":{"lat":23.12865,"lng":120.2929},"distance":330365},{"time":{"arrival":"2024-11-25T07:51:50Z","departure":"2024-11-25T07:51:50Z"},"load":[0],"activities":[{"jobId":"arrival","type":"arrival","location":{"lat":22.570109085287,"lng":120.3416894676074},"time":{"start":"2024-11-25T07:51:50Z","end":"2024-11-25T07:51:50Z"}}],"location":{"lat":22.570109085287,"lng":120.3416894676074},"distance":402640}],"statistic":{"cost":5116.92,"distance":402640,"duration":27593,"times":{"driving":20993,"serving":3000,"waiting":0,"stopping":0,"break":3600}},"shiftIndex":0}],"unassigned":[{"jobId":"c000114","reasons":[{"code":"REACHABLE_CONSTRAINT","description":"location unreachable"}]},{"jobId":"c000104","reasons":[{"code":"REACHABLE_CONSTRAINT","description":"location unreachable"}]},{"jobId":"c000062","reasons":[{"code":"REACHABLE_CONSTRAINT","description":"location unreachable"}]},{"jobId":"c000001","reasons":[{"code":"TIME_WINDOW_CONSTRAINT","description":"cannot be assigned due to violation of time window"}]},{"jobId":"c000054","reasons":[{"code":"TIME_WINDOW_CONSTRAINT","description":"cannot be assigned due to violation of time window"}]}],"notices":[{"code":"duplicatedVehicleProfile","title":"Vehicle profile 'MITSUBISHI_CANTER' is the same as `ISUZU_NLR`","action":"Consider replacing duplicated vehicle profiles"}]}
response_time: 4.794636
In [6]:
import json
import random

import flexpolyline
import folium
import requests
from folium.plugins import BeautifyIcon, AntPath

import solution_v3 as solution


def get_route(ori_lat, ori_lon, dest_lat, dest_lon, route_mode, departure_time):
    route_url = 'https://router.hereapi.com/v8/routes?'
    wp0 = ('{},{}'.format(ori_lat, ori_lon))
    wp1 = ('{},{}'.format(dest_lat, dest_lon))
    route_options = '&transportMode={}&departureTime={}&return=polyline'.format(route_mode, departure_time)
    url = route_url + 'apiKey=' + apikey + '&origin=' + wp0 + '&destination=' + wp1 + route_options
    json_result = json.loads(requests.get(url).text)
    routes = json_result['routes']
    route_shape = []
    decoded_polyline = flexpolyline.decode(routes[0]['sections'][0]['polyline'])
    return decoded_polyline


with open('apikey.txt', mode='r') as apikey_txt:
    apikey = apikey_txt.read()

m = folium.Map(
    tiles='https://maps.hereapi.com/v3/base/mc/{z}/{x}/{y}/png?style=logistics.day&ppi=200&features=vehicle_restrictions:active_and_inactive&size=256&apiKey=' + apikey,
    location=[23, 121],
    detect_retina=True,
    max_zoom=20,
    attr='(c)2024 HERE'
)

#Home 1
folium.Marker([25.0633628527129, 121.5517443657892],
              icon=BeautifyIcon(icon='home', iconShape='marker', background_color='#000000', text_color='#FFFFFF'),
              popup='Home').add_to(m)

#Home 2
folium.Marker([22.570109085287, 120.34168946760],
              icon=BeautifyIcon(icon='home', iconShape='marker', background_color='#000000', text_color='#FFFFFF'),
              popup='Home').add_to(m)

bounds = []

customer_dict = {}
unreachable_customer_names = []
solution = solution.solution_from_dict(j)
unassigned = solution.unassigned
unassigned_feature_group = folium.map.FeatureGroup(name='Unassigned', overlay=True, control=True, show=True)
icon_color = '#FF0000'
for destination_dict in destination_list:
    customer_dict[destination_dict['customer_id']] = destination_dict['name']
    if len(unassigned) > 0:
        for unassigned_destination in unassigned:
            job_id = unassigned_destination.job_id
            customer_name = ''
            if destination_dict['customer_id'] == job_id:
                customer_name = destination_dict['name']
                unreachable_customer_names.append(customer_name)
                folium.Marker([destination_dict['latitude'], destination_dict['longitude']],
                              icon=BeautifyIcon(icon='ban', iconShape='marker', background_color=icon_color,
                                                border_width=2), popup='{}/{}<br>{}'.format(job_id, customer_name,
                                                                                            unassigned_destination.reasons.__getitem__(
                                                                                                0).description)).add_to(
                    unassigned_feature_group)
unassigned_feature_group.add_to(m)
print("unreachable customers: ")
print(unreachable_customer_names)

tour_index = 0
tour_list = []
vehicle_list = []
while tour_index < len(solution.tours):
    icon_color = '#'
    i = 0
    while i < 6:
        icon_color += hex(random.randint(6, 16))[-1]
        i += 1
    tour = solution.tours.__getitem__(tour_index)
    vehicle_id = tour.vehicle_id
    vehicle_list.append(vehicle_id)
    statistic = tour.statistic
    print("\ncalculating routes for tour: {} / vehicle: {} / stops: {} / cost: {} / distance: {} / duration: {}".format(
        tour_index, vehicle_id, len(tour.stops), int(statistic.cost), statistic.distance, statistic.duration))
    feature_group = folium.map.FeatureGroup(name=vehicle_id, overlay=True, control=True, show=True)
    type_id = tour.type_id
    stops = tour.stops
    stop_index = 0
    stop_list = []
    trip_start_timestamp = 0
    trip_end_timestamp = 0
    movement_time = 0
    while stop_index < len(stops):
        stop = stops.__getitem__(stop_index)
        previous_stop = stops.__getitem__(stop_index - 1)
        stop_location = stop.location.to_dict()
        stop_time = stop.time
        stop_time_arrival = stop.time.arrival
        stop_time_departure = stop.time.departure
        stop_time_arrival_from_trip_start = 0
        stop_time_departure_from_trip_start = 0
        stop_activities = stop.activities

        if stop_index == 0:
            trip_start_timestamp = stop_time_departure
        else:
            stop_time_arrival_from_trip_start = stop_time_arrival - trip_start_timestamp
            stop_time_departure_from_trip_start = stop_time_departure - trip_start_timestamp
        print('\tstop_time_arrival_from_trip_start: {}'.format(stop_time_arrival_from_trip_start))
        print('\tstop_time_departure_from_trip_start: {}'.format(stop_time_departure_from_trip_start))
        if stop_index > 0:
            previous_stop = stops.__getitem__(stop_index - 1)
            movement_time = stop_time.arrival - previous_stop.time.departure
            movement_time.seconds
            print('\t~ movement time: {} ~'.format(movement_time))
        for stop_activity in stop_activities:
            job_id = stop_activity.job_id
            for destination_dict in destination_list:
                if destination_dict['customer_id'] == job_id:
                    stop_list.append({'stop_index': stop_index, 'job_id': job_id, 'destination': destination_dict})
                elif job_id == 'departure' or job_id == 'arrival' or job_id == 'break':
                    stop_list.append({'stop_index': stop_index, 'job_id': job_id,
                                      'destination': {'latitude': stop_location['lat'],
                                                      'longitude': stop_location['lng']}})
                    break
            customer_name = customer_dict.get(job_id)
            stop_load = stop.load
            if stop_index < len(stops) - 1:
                route_shape = get_route(stop_location['lat'], stop_location['lng'],
                                        stops.__getitem__(stop_index + 1).location.to_dict()['lat'],
                                        stops.__getitem__(stop_index + 1).location.to_dict()['lng'], 'truck',
                                        stop_time_departure.strftime('%Y-%m-%dT%H:%M:%SZ'))
                if stop_index > 0:
                    folium.Marker([stop_location['lat'], stop_location['lng']],
                                  icon=BeautifyIcon(icon='flag', iconShape='marker', background_color=icon_color,
                                                    border_width=2),
                                  popup='Vehicle ID: {}<br>Job ID: {}/{}<br>Arrival:{}<br>Departure:{}'.format(
                                      vehicle_id, job_id, customer_name, stop_time_arrival,
                                      stop_time_departure)).add_to(feature_group)
                shape_point_index = 0
                bounds.append([stop_location['lat'], stop_location['lng']])
                shape_point_list = []
                while shape_point_index < len(route_shape):
                    shape_point = route_shape[shape_point_index]
                    shape_point_list.append(shape_point)
                    shape_point_index += 1
                AntPath(shape_point_list, color=icon_color, weight=4, opacity=1).add_to(feature_group)
            print('{} --> {} / {} / {} / arr: {} dep: {} '.format(stop_index, job_id, customer_name,
                                                                  [stop_location['lat'], stop_location['lng']],
                                                                  stop_time.arrival, stop_time.departure))

        stop_index += 1
    statistic = tour.statistic
    tour_list.append({'vehicle_id': vehicle_id, 'stop_list': stop_list})
    feature_group.add_to(m)
    tour_index += 1
unreachable customers: 
['肯德基-花蓮中正餐廳', '肯德基-台東新生餐廳', '肯德基-台南中華餐廳', '肯德基-台南中華西餐廳', '肯德基-汐止中興餐廳']

calculating routes for tour: 0 / vehicle: isuzu_2 / stops: 26 / cost: 2859 / distance: 89176 / duration: 27351
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:54:46+00:00 
	stop_time_arrival_from_trip_start: 0:10:52
	stop_time_departure_from_trip_start: 0:15:52
	~ movement time: 0:10:52 ~
1 --> c000078 / 肯德基-台北雙連餐廳 / [25.0578, 121.52166] / arr: 2024-11-25 01:05:38+00:00 dep: 2024-11-25 01:10:38+00:00 
	stop_time_arrival_from_trip_start: 0:18:57
	stop_time_departure_from_trip_start: 0:28:57
	~ movement time: 0:03:05 ~
2 --> c000079 / 肯德基-台北承德餐廳 / [25.05076, 121.51689] / arr: 2024-11-25 01:13:43+00:00 dep: 2024-11-25 01:23:43+00:00 
	stop_time_arrival_from_trip_start: 0:34:27
	stop_time_departure_from_trip_start: 0:39:27
	~ movement time: 0:05:30 ~
3 --> c000154 / 肯德基-台北峨嵋餐廳 / [25.04348, 121.50713] / arr: 2024-11-25 01:29:13+00:00 dep: 2024-11-25 01:34:13+00:00 
	stop_time_arrival_from_trip_start: 0:49:12
	stop_time_departure_from_trip_start: 0:54:12
	~ movement time: 0:09:45 ~
4 --> c000018 / 肯德基-板橋埔墘餐廳 / [25.01751, 121.47736] / arr: 2024-11-25 01:43:58+00:00 dep: 2024-11-25 01:48:58+00:00 
	stop_time_arrival_from_trip_start: 0:59:29
	stop_time_departure_from_trip_start: 1:04:29
	~ movement time: 0:05:17 ~
5 --> c000108 / 肯德基-中和環球餐廳 / [25.00609, 121.47514] / arr: 2024-11-25 01:54:15+00:00 dep: 2024-11-25 01:59:15+00:00 
	stop_time_arrival_from_trip_start: 1:11:50
	stop_time_departure_from_trip_start: 1:16:50
	~ movement time: 0:07:21 ~
6 --> c000052 / 肯德基-中和連城餐廳 / [24.9962, 121.48799] / arr: 2024-11-25 02:06:36+00:00 dep: 2024-11-25 02:11:36+00:00 
	stop_time_arrival_from_trip_start: 1:23:59
	stop_time_departure_from_trip_start: 1:28:59
	~ movement time: 0:07:09 ~
7 --> c000004 / 肯德基-中和興南餐廳 / [24.98914, 121.50996] / arr: 2024-11-25 02:18:45+00:00 dep: 2024-11-25 02:23:45+00:00 
	stop_time_arrival_from_trip_start: 1:33:20
	stop_time_departure_from_trip_start: 1:38:20
	~ movement time: 0:04:21 ~
8 --> c000038 / 肯德基-永和中正餐廳 / [24.99907, 121.51711] / arr: 2024-11-25 02:28:06+00:00 dep: 2024-11-25 02:33:06+00:00 
	stop_time_arrival_from_trip_start: 1:44:41
	stop_time_departure_from_trip_start: 1:54:41
	~ movement time: 0:06:21 ~
9 --> c000155 / 肯德基-永和中山餐廳 / [25.0062, 121.50575] / arr: 2024-11-25 02:39:27+00:00 dep: 2024-11-25 02:49:27+00:00 
	stop_time_arrival_from_trip_start: 1:56:28
	stop_time_departure_from_trip_start: 2:01:28
	~ movement time: 0:01:47 ~
10 --> c000010 / 肯德基-中和福祥餐廳 / [25.00264, 121.49895] / arr: 2024-11-25 02:51:14+00:00 dep: 2024-11-25 02:56:14+00:00 
	stop_time_arrival_from_trip_start: 2:06:40
	stop_time_departure_from_trip_start: 2:11:40
	~ movement time: 0:05:12 ~
11 --> c000124 / 肯德基-台北萬大餐廳 / [25.02543, 121.50039] / arr: 2024-11-25 03:01:26+00:00 dep: 2024-11-25 03:06:26+00:00 
	stop_time_arrival_from_trip_start: 2:21:37
	stop_time_departure_from_trip_start: 2:36:37
	~ movement time: 0:09:57 ~
12 --> c000118 / 肯德基-台北車站B2餐廳 / [25.04745, 121.51614] / arr: 2024-11-25 03:16:23+00:00 dep: 2024-11-25 03:31:23+00:00 
12 --> c000117 / 肯德基-台北車站B1餐廳 / [25.04745, 121.51614] / arr: 2024-11-25 03:16:23+00:00 dep: 2024-11-25 03:31:23+00:00 
	stop_time_arrival_from_trip_start: 2:39:59
	stop_time_departure_from_trip_start: 2:49:59
	~ movement time: 0:03:22 ~
13 --> c000097 / 肯德基-台北南京西餐廳 / [25.05267, 121.52003] / arr: 2024-11-25 03:34:45+00:00 dep: 2024-11-25 03:44:45+00:00 
	stop_time_arrival_from_trip_start: 3:00:14
	stop_time_departure_from_trip_start: 4:05:14
	~ movement time: 0:10:15 ~
14 --> c000002 / 肯德基-台北台大餐廳 / [25.01707, 121.53325] / arr: 2024-11-25 03:55:00+00:00 dep: 2024-11-25 05:00:00+00:00 
14 --> break / None / [25.01707, 121.53325] / arr: 2024-11-25 03:55:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 4:21:02
	stop_time_departure_from_trip_start: 4:26:02
	~ movement time: 0:15:48 ~
15 --> c000088 / 肯德基-新店光明餐廳 / [24.95911, 121.53831] / arr: 2024-11-25 05:15:48+00:00 dep: 2024-11-25 05:20:48+00:00 
	stop_time_arrival_from_trip_start: 4:32:09
	stop_time_departure_from_trip_start: 4:37:09
	~ movement time: 0:06:07 ~
16 --> c000086 / 肯德基-新店北新餐廳 / [24.97327, 121.54287] / arr: 2024-11-25 05:26:55+00:00 dep: 2024-11-25 05:31:55+00:00 
	stop_time_arrival_from_trip_start: 4:48:02
	stop_time_departure_from_trip_start: 4:58:02
	~ movement time: 0:10:53 ~
17 --> c000151 / 肯德基-文山木柵餐廳 / [24.98858, 121.56681] / arr: 2024-11-25 05:42:48+00:00 dep: 2024-11-25 05:52:48+00:00 
	stop_time_arrival_from_trip_start: 5:05:07
	stop_time_departure_from_trip_start: 5:10:07
	~ movement time: 0:07:05 ~
18 --> c000122 / 肯德基-文山興隆餐廳 / [25.00079, 121.55484] / arr: 2024-11-25 05:59:53+00:00 dep: 2024-11-25 06:04:53+00:00 
	stop_time_arrival_from_trip_start: 5:24:41
	stop_time_departure_from_trip_start: 5:34:41
	~ movement time: 0:14:34 ~
19 --> c000109 / 肯德基-台北莊敬餐廳 / [25.02795, 121.56387] / arr: 2024-11-25 06:19:27+00:00 dep: 2024-11-25 06:29:27+00:00 
	stop_time_arrival_from_trip_start: 5:43:01
	stop_time_departure_from_trip_start: 5:53:01
	~ movement time: 0:08:20 ~
20 --> c000077 / 肯德基-台北永春餐廳 / [25.041, 121.57313] / arr: 2024-11-25 06:37:47+00:00 dep: 2024-11-25 06:47:47+00:00 
	stop_time_arrival_from_trip_start: 6:04:38
	stop_time_departure_from_trip_start: 6:14:38
	~ movement time: 0:11:37 ~
21 --> c000133 / 肯德基-台北南港餐廳 / [25.05579, 121.61395] / arr: 2024-11-25 06:59:24+00:00 dep: 2024-11-25 07:09:24+00:00 
	stop_time_arrival_from_trip_start: 6:27:23
	stop_time_departure_from_trip_start: 6:37:23
	~ movement time: 0:12:45 ~
22 --> c000141 / 肯德基-汐止大同餐廳 / [25.06729, 121.65759] / arr: 2024-11-25 07:22:09+00:00 dep: 2024-11-25 07:32:09+00:00 
	stop_time_arrival_from_trip_start: 6:50:34
	stop_time_departure_from_trip_start: 7:00:34
	~ movement time: 0:13:11 ~
23 --> c000049 / 肯德基-台北東湖二餐廳 / [25.06821, 121.61631] / arr: 2024-11-25 07:45:20+00:00 dep: 2024-11-25 07:55:20+00:00 
	stop_time_arrival_from_trip_start: 7:16:34
	stop_time_departure_from_trip_start: 7:21:34
	~ movement time: 0:16:00 ~
24 --> c000074 / 肯德基-台北內湖餐廳 / [25.08252, 121.56485] / arr: 2024-11-25 08:11:20+00:00 dep: 2024-11-25 08:16:20+00:00 
	stop_time_arrival_from_trip_start: 7:35:51
	stop_time_departure_from_trip_start: 7:35:51
	~ movement time: 0:14:17 ~
25 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:30:37+00:00 dep: 2024-11-25 08:30:37+00:00 

calculating routes for tour: 1 / vehicle: isuzu_6 / stops: 14 / cost: 2410 / distance: 56799 / duration: 17682
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 0:11:06
	stop_time_departure_from_trip_start: 0:16:06
	~ movement time: 0:11:06 ~
1 --> c000082 / 肯德基-三重重新二餐廳 / [25.06293, 121.49969] / arr: 2024-11-25 05:11:06+00:00 dep: 2024-11-25 05:16:06+00:00 
	stop_time_arrival_from_trip_start: 0:17:57
	stop_time_departure_from_trip_start: 0:27:57
	~ movement time: 0:01:51 ~
2 --> c000153 / 肯德基-三重正義餐廳 / [25.06667, 121.4966] / arr: 2024-11-25 05:17:57+00:00 dep: 2024-11-25 05:27:57+00:00 
	stop_time_arrival_from_trip_start: 0:48:59
	stop_time_departure_from_trip_start: 0:53:59
	~ movement time: 0:21:02 ~
3 --> c000008 / 肯德基-台北石牌餐廳 / [25.11494, 121.51556] / arr: 2024-11-25 05:48:59+00:00 dep: 2024-11-25 05:53:59+00:00 
	stop_time_arrival_from_trip_start: 1:03:47
	stop_time_departure_from_trip_start: 1:13:47
	~ movement time: 0:09:48 ~
4 --> c000057 / 肯德基-北投光明餐廳 / [25.13673, 121.50431] / arr: 2024-11-25 06:03:47+00:00 dep: 2024-11-25 06:13:47+00:00 
	stop_time_arrival_from_trip_start: 1:28:20
	stop_time_departure_from_trip_start: 1:33:20
	~ movement time: 0:14:33 ~
5 --> c000148 / 肯德基-天母中山餐廳 / [25.11824, 121.53014] / arr: 2024-11-25 06:28:20+00:00 dep: 2024-11-25 06:33:20+00:00 
	stop_time_arrival_from_trip_start: 1:33:30
	stop_time_departure_from_trip_start: 1:38:30
	~ movement time: 0:00:10 ~
6 --> c000098 / 肯德基-台北天母餐廳 / [25.11811, 121.53084] / arr: 2024-11-25 06:33:30+00:00 dep: 2024-11-25 06:38:30+00:00 
	stop_time_arrival_from_trip_start: 1:48:11
	stop_time_departure_from_trip_start: 1:58:11
	~ movement time: 0:09:41 ~
7 --> c000127 / 肯德基-士林文昌餐廳 / [25.09447, 121.5223] / arr: 2024-11-25 06:48:11+00:00 dep: 2024-11-25 06:58:11+00:00 
	stop_time_arrival_from_trip_start: 2:01:27
	stop_time_departure_from_trip_start: 2:11:27
	~ movement time: 0:03:16 ~
8 --> c000039 / 肯德基-台北士林餐廳 / [25.0873, 121.5259] / arr: 2024-11-25 07:01:27+00:00 dep: 2024-11-25 07:11:27+00:00 
	stop_time_arrival_from_trip_start: 2:26:56
	stop_time_departure_from_trip_start: 2:36:56
	~ movement time: 0:15:29 ~
9 --> c000021 / 肯德基-蘆洲三民餐廳 / [25.08714, 121.47138] / arr: 2024-11-25 07:26:56+00:00 dep: 2024-11-25 07:36:56+00:00 
	stop_time_arrival_from_trip_start: 2:47:23
	stop_time_departure_from_trip_start: 2:57:23
	~ movement time: 0:10:27 ~
10 --> c000137 / 肯德基-五股成泰餐廳 / [25.08458, 121.4385] / arr: 2024-11-25 07:47:23+00:00 dep: 2024-11-25 07:57:23+00:00 
	stop_time_arrival_from_trip_start: 3:10:29
	stop_time_departure_from_trip_start: 3:15:29
	~ movement time: 0:13:06 ~
11 --> c000032 / 肯德基-三重三和餐廳 / [25.07921, 121.48224] / arr: 2024-11-25 08:10:29+00:00 dep: 2024-11-25 08:15:29+00:00 
	stop_time_arrival_from_trip_start: 3:36:19
	stop_time_departure_from_trip_start: 3:46:19
	~ movement time: 0:20:50 ~
12 --> c000055 / 肯德基-台北中山餐廳 / [25.05177, 121.5436] / arr: 2024-11-25 08:36:19+00:00 dep: 2024-11-25 08:46:19+00:00 
	stop_time_arrival_from_trip_start: 3:54:42
	stop_time_departure_from_trip_start: 3:54:42
	~ movement time: 0:08:23 ~
13 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:54:42+00:00 dep: 2024-11-25 08:54:42+00:00 

calculating routes for tour: 2 / vehicle: mitsubishi_6 / stops: 14 / cost: 2900 / distance: 54811 / duration: 15659
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 0:06:13
	stop_time_departure_from_trip_start: 0:16:13
	~ movement time: 0:06:13 ~
1 --> c000085 / 肯德基-鳳山五甲一餐廳 / [22.59008, 120.32425] / arr: 2024-11-25 05:06:13+00:00 dep: 2024-11-25 05:16:13+00:00 
	stop_time_arrival_from_trip_start: 0:20:07
	stop_time_departure_from_trip_start: 0:25:07
	~ movement time: 0:03:54 ~
2 --> c000064 / 肯德基-鳳山五甲二餐廳 / [22.60091, 120.33976] / arr: 2024-11-25 05:20:07+00:00 dep: 2024-11-25 05:25:07+00:00 
	stop_time_arrival_from_trip_start: 0:34:49
	stop_time_departure_from_trip_start: 0:44:49
	~ movement time: 0:09:42 ~
3 --> c000015 / 肯德基-高雄沿海餐廳 / [22.56732, 120.35157] / arr: 2024-11-25 05:34:49+00:00 dep: 2024-11-25 05:44:49+00:00 
	stop_time_arrival_from_trip_start: 1:02:59
	stop_time_departure_from_trip_start: 1:12:59
	~ movement time: 0:18:10 ~
4 --> c000041 / 肯德基-高雄站前餐廳 / [22.6379, 120.30108] / arr: 2024-11-25 06:02:59+00:00 dep: 2024-11-25 06:12:59+00:00 
	stop_time_arrival_from_trip_start: 1:17:52
	stop_time_departure_from_trip_start: 1:22:52
	~ movement time: 0:04:53 ~
5 --> c000006 / 肯德基-高雄十全餐廳 / [22.64501, 120.30923] / arr: 2024-11-25 06:17:52+00:00 dep: 2024-11-25 06:22:52+00:00 
	stop_time_arrival_from_trip_start: 1:37:35
	stop_time_departure_from_trip_start: 1:42:35
	~ movement time: 0:14:43 ~
6 --> c000116 / 肯德基-左營環球餐廳 / [22.68762, 120.30674] / arr: 2024-11-25 06:37:35+00:00 dep: 2024-11-25 06:42:35+00:00 
	stop_time_arrival_from_trip_start: 1:55:44
	stop_time_departure_from_trip_start: 2:00:44
	~ movement time: 0:13:09 ~
7 --> c000070 / 肯德基-高雄自由餐廳 / [22.66062, 120.30884] / arr: 2024-11-25 06:55:44+00:00 dep: 2024-11-25 07:00:44+00:00 
	stop_time_arrival_from_trip_start: 2:08:03
	stop_time_departure_from_trip_start: 2:13:03
	~ movement time: 0:07:19 ~
8 --> c000058 / 肯德基-高雄大順二餐廳 / [22.64441, 120.32627] / arr: 2024-11-25 07:08:03+00:00 dep: 2024-11-25 07:13:03+00:00 
	stop_time_arrival_from_trip_start: 2:17:16
	stop_time_departure_from_trip_start: 2:27:16
	~ movement time: 0:04:13 ~
9 --> c000069 / 肯德基-高雄大順餐廳 / [22.63253, 120.32548] / arr: 2024-11-25 07:17:16+00:00 dep: 2024-11-25 07:27:16+00:00 
	stop_time_arrival_from_trip_start: 2:30:11
	stop_time_departure_from_trip_start: 2:40:11
	~ movement time: 0:02:55 ~
10 --> c000149 / 肯德基-高雄文化餐廳 / [22.62796, 120.31531] / arr: 2024-11-25 07:30:11+00:00 dep: 2024-11-25 07:40:11+00:00 
	stop_time_arrival_from_trip_start: 2:44:12
	stop_time_departure_from_trip_start: 2:49:12
	~ movement time: 0:04:01 ~
11 --> c000044 / 肯德基-高雄三多餐廳 / [22.6198, 120.32263] / arr: 2024-11-25 07:44:12+00:00 dep: 2024-11-25 07:49:12+00:00 
	stop_time_arrival_from_trip_start: 2:55:40
	stop_time_departure_from_trip_start: 3:05:40
	~ movement time: 0:06:28 ~
12 --> c000035 / 肯德基-高雄中華五餐廳 / [22.60521, 120.30503] / arr: 2024-11-25 07:55:40+00:00 dep: 2024-11-25 08:05:40+00:00 
	stop_time_arrival_from_trip_start: 3:20:59
	stop_time_departure_from_trip_start: 3:20:59
	~ movement time: 0:15:19 ~
13 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 08:20:59+00:00 dep: 2024-11-25 08:20:59+00:00 

calculating routes for tour: 3 / vehicle: mitsubishi_2 / stops: 11 / cost: 3376 / distance: 135075 / duration: 17538
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 0:54:54
	stop_time_departure_from_trip_start: 1:04:54
	~ movement time: 0:54:54 ~
1 --> c000123 / 肯德基-台南成大餐廳 / [22.99603, 120.22089] / arr: 2024-11-25 05:54:54+00:00 dep: 2024-11-25 06:04:54+00:00 
	stop_time_arrival_from_trip_start: 1:13:44
	stop_time_departure_from_trip_start: 1:23:44
	~ movement time: 0:08:50 ~
2 --> c000013 / 肯德基-台南西門二餐廳 / [23.00881, 120.20743] / arr: 2024-11-25 06:13:44+00:00 dep: 2024-11-25 06:23:44+00:00 
	stop_time_arrival_from_trip_start: 1:32:55
	stop_time_departure_from_trip_start: 1:37:55
	~ movement time: 0:09:11 ~
3 --> c000040 / 肯德基-台南永康餐廳 / [23.04153, 120.24255] / arr: 2024-11-25 06:32:55+00:00 dep: 2024-11-25 06:37:55+00:00 
	stop_time_arrival_from_trip_start: 1:52:23
	stop_time_departure_from_trip_start: 1:57:23
	~ movement time: 0:14:28 ~
4 --> c000144 / 肯德基-台南海佃餐廳 / [23.0237, 120.19181] / arr: 2024-11-25 06:52:23+00:00 dep: 2024-11-25 06:57:23+00:00 
	stop_time_arrival_from_trip_start: 1:59:14
	stop_time_departure_from_trip_start: 2:04:14
	~ movement time: 0:01:51 ~
5 --> c000142 / 肯德基-台南海佃餐廳 / [23.02865, 120.19058] / arr: 2024-11-25 06:59:14+00:00 dep: 2024-11-25 07:04:14+00:00 
	stop_time_arrival_from_trip_start: 2:16:55
	stop_time_departure_from_trip_start: 2:21:55
	~ movement time: 0:12:41 ~
6 --> c000056 / 肯德基-台南安平餐廳 / [22.98849, 120.17317] / arr: 2024-11-25 07:16:55+00:00 dep: 2024-11-25 07:21:55+00:00 
	stop_time_arrival_from_trip_start: 2:27:58
	stop_time_departure_from_trip_start: 2:32:58
	~ movement time: 0:06:03 ~
7 --> c000156 / 肯德基-台南金華餐廳 / [22.98102, 120.19147] / arr: 2024-11-25 07:27:58+00:00 dep: 2024-11-25 07:32:58+00:00 
	stop_time_arrival_from_trip_start: 2:40:35
	stop_time_departure_from_trip_start: 2:50:35
	~ movement time: 0:07:37 ~
8 --> c000099 / 肯德基-台南崇明餐廳 / [22.97638, 120.22119] / arr: 2024-11-25 07:40:35+00:00 dep: 2024-11-25 07:50:35+00:00 
	stop_time_arrival_from_trip_start: 2:54:03
	stop_time_departure_from_trip_start: 3:04:03
	~ movement time: 0:03:28 ~
9 --> c000047 / 肯德基-台南東門餐廳 / [22.98225, 120.22792] / arr: 2024-11-25 07:54:03+00:00 dep: 2024-11-25 08:04:03+00:00 
	stop_time_arrival_from_trip_start: 3:52:18
	stop_time_departure_from_trip_start: 3:52:18
	~ movement time: 0:48:15 ~
10 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 08:52:18+00:00 dep: 2024-11-25 08:52:18+00:00 

calculating routes for tour: 4 / vehicle: mitsubishi_1 / stops: 9 / cost: 5289 / distance: 430664 / duration: 28403
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:00:00+00:00 
	stop_time_arrival_from_trip_start: 2:29:28
	stop_time_departure_from_trip_start: 2:39:28
	~ movement time: 2:29:28 ~
1 --> c000023 / 肯德基-台中三越餐廳 / [24.16563, 120.6438] / arr: 2024-11-25 02:29:28+00:00 dep: 2024-11-25 02:39:28+00:00 
	stop_time_arrival_from_trip_start: 2:41:24
	stop_time_departure_from_trip_start: 2:46:24
	~ movement time: 0:01:56 ~
2 --> c000080 / 肯德基-中港愛買餐廳 / [24.16183, 120.65072] / arr: 2024-11-25 02:41:24+00:00 dep: 2024-11-25 02:46:24+00:00 
	stop_time_arrival_from_trip_start: 2:57:44
	stop_time_departure_from_trip_start: 3:07:44
	~ movement time: 0:11:20 ~
3 --> c000037 / 肯德基-台中永福餐廳 / [24.18456, 120.62095] / arr: 2024-11-25 02:57:44+00:00 dep: 2024-11-25 03:07:44+00:00 
	stop_time_arrival_from_trip_start: 3:10:35
	stop_time_departure_from_trip_start: 3:20:35
	~ movement time: 0:02:51 ~
4 --> c000157 / 肯德基-台中台糖餐廳 / [24.18367, 120.61457] / arr: 2024-11-25 03:10:35+00:00 dep: 2024-11-25 03:20:35+00:00 
	stop_time_arrival_from_trip_start: 3:36:54
	stop_time_departure_from_trip_start: 3:41:54
	~ movement time: 0:16:19 ~
5 --> c000084 / 肯德基-台中沙鹿餐廳 / [24.23578, 120.55913] / arr: 2024-11-25 03:36:54+00:00 dep: 2024-11-25 03:41:54+00:00 
	stop_time_arrival_from_trip_start: 4:16:35
	stop_time_departure_from_trip_start: 5:21:35
	~ movement time: 0:34:41 ~
6 --> c000112 / 肯德基-彰化鹿港餐廳 / [24.05574, 120.43347] / arr: 2024-11-25 04:16:35+00:00 dep: 2024-11-25 05:21:35+00:00 
6 --> break / None / [24.05574, 120.43347] / arr: 2024-11-25 04:16:35+00:00 dep: 2024-11-25 05:21:35+00:00 
	stop_time_arrival_from_trip_start: 7:22:53
	stop_time_departure_from_trip_start: 7:27:53
	~ movement time: 2:01:18 ~
7 --> c000024 / 肯德基-高雄楠梓二餐廳 / [22.72697, 120.32673] / arr: 2024-11-25 07:22:53+00:00 dep: 2024-11-25 07:27:53+00:00 
	stop_time_arrival_from_trip_start: 7:53:23
	stop_time_departure_from_trip_start: 7:53:23
	~ movement time: 0:25:30 ~
8 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 07:53:23+00:00 dep: 2024-11-25 07:53:23+00:00 

calculating routes for tour: 5 / vehicle: mitsubishi_8 / stops: 11 / cost: 5404 / distance: 454796 / duration: 28253
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:00:00+00:00 
	stop_time_arrival_from_trip_start: 2:22:07
	stop_time_departure_from_trip_start: 2:32:07
	~ movement time: 2:22:07 ~
1 --> c000071 / 肯德基-南投草屯餐廳 / [23.97505, 120.68364] / arr: 2024-11-25 02:22:07+00:00 dep: 2024-11-25 02:32:07+00:00 
	stop_time_arrival_from_trip_start: 2:53:56
	stop_time_departure_from_trip_start: 2:58:56
	~ movement time: 0:21:49 ~
2 --> c000102 / 肯德基-大里國光餐廳 / [24.10062, 120.68234] / arr: 2024-11-25 02:53:56+00:00 dep: 2024-11-25 02:58:56+00:00 
	stop_time_arrival_from_trip_start: 3:03:58
	stop_time_departure_from_trip_start: 3:13:58
	~ movement time: 0:05:02 ~
3 --> c000045 / 肯德基-大里中興餐廳 / [24.1104, 120.69003] / arr: 2024-11-25 03:03:58+00:00 dep: 2024-11-25 03:13:58+00:00 
	stop_time_arrival_from_trip_start: 3:25:42
	stop_time_departure_from_trip_start: 3:30:42
	~ movement time: 0:11:44 ~
4 --> c000022 / 肯德基-太平中山餐廳 / [24.14981, 120.71283] / arr: 2024-11-25 03:25:42+00:00 dep: 2024-11-25 03:30:42+00:00 
	stop_time_arrival_from_trip_start: 3:47:39
	stop_time_departure_from_trip_start: 3:52:39
	~ movement time: 0:16:57 ~
5 --> c000150 / 肯德基-台中潭子餐廳 / [24.21387, 120.70055] / arr: 2024-11-25 03:47:39+00:00 dep: 2024-11-25 03:52:39+00:00 
	stop_time_arrival_from_trip_start: 4:05:52
	stop_time_departure_from_trip_start: 4:15:52
	~ movement time: 0:13:13 ~
6 --> c000103 / 肯德基-台中豐原餐廳 / [24.25304, 120.72189] / arr: 2024-11-25 04:05:52+00:00 dep: 2024-11-25 04:15:52+00:00 
	stop_time_arrival_from_trip_start: 4:32:52
	stop_time_departure_from_trip_start: 4:42:52
	~ movement time: 0:17:00 ~
7 --> c000067 / 肯德基-台中大雅餐廳 / [24.2254, 120.64533] / arr: 2024-11-25 04:32:52+00:00 dep: 2024-11-25 04:42:52+00:00 
	stop_time_arrival_from_trip_start: 4:51:11
	stop_time_departure_from_trip_start: 5:01:11
	~ movement time: 0:08:19 ~
8 --> c000081 / 肯德基-台中后庄餐廳 / [24.18977, 120.66255] / arr: 2024-11-25 04:51:11+00:00 dep: 2024-11-25 05:01:11+00:00 
	stop_time_arrival_from_trip_start: 5:08:40
	stop_time_departure_from_trip_start: 5:18:40
	~ movement time: 0:07:29 ~
9 --> c000119 / 肯德基-台中中港愛買餐廳 / [24.1748, 120.66333] / arr: 2024-11-25 05:08:40+00:00 dep: 2024-11-25 05:18:40+00:00 
	stop_time_arrival_from_trip_start: 7:50:53
	stop_time_departure_from_trip_start: 7:50:53
	~ movement time: 2:32:13 ~
10 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 07:50:53+00:00 dep: 2024-11-25 07:50:53+00:00 

calculating routes for tour: 6 / vehicle: isuzu_8 / stops: 6 / cost: 2863 / distance: 168579 / duration: 17858
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 0:48:22
	stop_time_departure_from_trip_start: 0:58:22
	~ movement time: 0:48:22 ~
1 --> c000135 / 肯德基-桃園大園餐廳 / [25.06246, 121.20148] / arr: 2024-11-25 05:48:22+00:00 dep: 2024-11-25 05:58:22+00:00 
	stop_time_arrival_from_trip_start: 1:42:32
	stop_time_departure_from_trip_start: 1:52:32
	~ movement time: 0:44:10 ~
2 --> c000159 / 肯德基-新竹新豐餐廳 / [24.8678, 120.99374] / arr: 2024-11-25 06:42:32+00:00 dep: 2024-11-25 06:52:32+00:00 
	stop_time_arrival_from_trip_start: 2:10:32
	stop_time_departure_from_trip_start: 2:15:32
	~ movement time: 0:18:00 ~
3 --> c000158 / 肯德基-竹北自強餐廳 / [24.81074, 121.02149] / arr: 2024-11-25 07:10:32+00:00 dep: 2024-11-25 07:15:32+00:00 
	stop_time_arrival_from_trip_start: 3:39:26
	stop_time_departure_from_trip_start: 3:49:26
	~ movement time: 1:23:54 ~
4 --> c000011 / 肯德基-台北中崙餐廳 / [25.04721, 121.54245] / arr: 2024-11-25 08:39:26+00:00 dep: 2024-11-25 08:49:26+00:00 
	stop_time_arrival_from_trip_start: 3:57:38
	stop_time_departure_from_trip_start: 3:57:38
	~ movement time: 0:08:12 ~
5 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:57:38+00:00 dep: 2024-11-25 08:57:38+00:00 

calculating routes for tour: 7 / vehicle: mitsubishi_7 / stops: 7 / cost: 5323 / distance: 446836 / duration: 27239
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:05:03+00:00 
	stop_time_arrival_from_trip_start: 1:19:48
	stop_time_departure_from_trip_start: 1:24:48
	~ movement time: 1:19:48 ~
1 --> c000120 / 肯德基-新營中正餐廳 / [23.3072, 120.31611] / arr: 2024-11-25 01:24:51+00:00 dep: 2024-11-25 01:29:51+00:00 
	stop_time_arrival_from_trip_start: 2:37:10
	stop_time_departure_from_trip_start: 2:47:10
	~ movement time: 1:12:22 ~
2 --> c000043 / 肯德基-彰化中山餐廳 / [24.06824, 120.54014] / arr: 2024-11-25 02:42:13+00:00 dep: 2024-11-25 02:52:13+00:00 
	stop_time_arrival_from_trip_start: 2:52:05
	stop_time_departure_from_trip_start: 2:57:05
	~ movement time: 0:04:55 ~
3 --> c000140 / 肯德基-彰化民權餐廳 / [24.07694, 120.53719] / arr: 2024-11-25 02:57:08+00:00 dep: 2024-11-25 03:02:08+00:00 
	stop_time_arrival_from_trip_start: 3:03:32
	stop_time_departure_from_trip_start: 3:08:32
	~ movement time: 0:06:27 ~
4 --> c000020 / 肯德基-彰化金馬餐廳 / [24.09398, 120.54057] / arr: 2024-11-25 03:08:35+00:00 dep: 2024-11-25 03:13:35+00:00 
	stop_time_arrival_from_trip_start: 3:44:57
	stop_time_departure_from_trip_start: 4:54:57
	~ movement time: 0:36:25 ~
5 --> c000061 / 肯德基-台中烏日餐廳 / [24.33462, 120.61525] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
5 --> break / None / [24.33462, 120.61525] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 7:33:59
	stop_time_departure_from_trip_start: 7:33:59
	~ movement time: 2:39:02 ~
6 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 07:39:02+00:00 dep: 2024-11-25 07:39:02+00:00 

calculating routes for tour: 8 / vehicle: isuzu_3 / stops: 7 / cost: 2784 / distance: 152738 / duration: 17385
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 0:36:22
	stop_time_departure_from_trip_start: 0:41:22
	~ movement time: 0:36:22 ~
1 --> c000066 / 肯德基-南崁中正餐廳 / [25.04407, 121.29408] / arr: 2024-11-25 05:36:22+00:00 dep: 2024-11-25 05:41:22+00:00 
	stop_time_arrival_from_trip_start: 1:04:40
	stop_time_departure_from_trip_start: 1:09:40
	~ movement time: 0:23:18 ~
2 --> c000048 / 肯德基-中壢中正餐廳 / [24.95537, 121.22162] / arr: 2024-11-25 06:04:40+00:00 dep: 2024-11-25 06:09:40+00:00 
	stop_time_arrival_from_trip_start: 1:31:18
	stop_time_departure_from_trip_start: 1:36:18
	~ movement time: 0:21:38 ~
3 --> c000160 / 肯德基-龍潭北龍餐廳 / [24.86458, 121.211] / arr: 2024-11-25 06:31:18+00:00 dep: 2024-11-25 06:36:18+00:00 
	stop_time_arrival_from_trip_start: 2:54:48
	stop_time_departure_from_trip_start: 2:59:48
	~ movement time: 1:18:30 ~
4 --> c000090 / 肯德基-基隆忠二餐廳 / [25.12979, 121.74067] / arr: 2024-11-25 07:54:48+00:00 dep: 2024-11-25 07:59:48+00:00 
	stop_time_arrival_from_trip_start: 3:04:45
	stop_time_departure_from_trip_start: 3:09:45
	~ movement time: 0:04:57 ~
5 --> c000046 / 肯德基-基隆仁一餐廳 / [25.12789, 121.75095] / arr: 2024-11-25 08:04:45+00:00 dep: 2024-11-25 08:09:45+00:00 
	stop_time_arrival_from_trip_start: 3:49:45
	stop_time_departure_from_trip_start: 3:49:45
	~ movement time: 0:40:00 ~
6 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:49:45+00:00 dep: 2024-11-25 08:49:45+00:00 

calculating routes for tour: 9 / vehicle: mitsubishi_4 / stops: 9 / cost: 5232 / distance: 416599 / duration: 28747
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:00:00+00:00 
	stop_time_arrival_from_trip_start: 2:17:39
	stop_time_departure_from_trip_start: 2:27:39
	~ movement time: 2:17:39 ~
1 --> c000003 / 肯德基-彰化員林餐廳 / [23.95943, 120.57111] / arr: 2024-11-25 02:17:39+00:00 dep: 2024-11-25 02:27:39+00:00 
	stop_time_arrival_from_trip_start: 3:03:17
	stop_time_departure_from_trip_start: 3:08:17
	~ movement time: 0:35:38 ~
2 --> c000094 / 肯德基-台中五權西餐廳 / [24.14006, 120.65156] / arr: 2024-11-25 03:03:17+00:00 dep: 2024-11-25 03:08:17+00:00 
	stop_time_arrival_from_trip_start: 3:14:23
	stop_time_departure_from_trip_start: 3:24:23
	~ movement time: 0:06:06 ~
3 --> c000063 / 肯德基-台中五權餐廳 / [24.15036, 120.67641] / arr: 2024-11-25 03:14:23+00:00 dep: 2024-11-25 03:24:23+00:00 
	stop_time_arrival_from_trip_start: 3:32:28
	stop_time_departure_from_trip_start: 3:42:28
	~ movement time: 0:08:05 ~
4 --> c000113 / 肯德基-北屯大買家餐廳 / [24.17624, 120.69952] / arr: 2024-11-25 03:32:28+00:00 dep: 2024-11-25 03:42:28+00:00 
	stop_time_arrival_from_trip_start: 3:49:27
	stop_time_departure_from_trip_start: 3:59:27
	~ movement time: 0:06:59 ~
5 --> c000093 / 肯德基-台中文心餐廳 / [24.17358, 120.67646] / arr: 2024-11-25 03:49:27+00:00 dep: 2024-11-25 03:59:27+00:00 
	stop_time_arrival_from_trip_start: 4:15:13
	stop_time_departure_from_trip_start: 4:20:13
	~ movement time: 0:15:46 ~
6 --> c000036 / 肯德基-台中復興餐廳 / [24.11732, 120.658] / arr: 2024-11-25 04:15:13+00:00 dep: 2024-11-25 04:20:13+00:00 
	stop_time_arrival_from_trip_start: 4:24:22
	stop_time_departure_from_trip_start: 5:34:22
	~ movement time: 0:04:09 ~
7 --> c000125 / 肯德基-台中烏日餐廳 / [24.10725, 120.63624] / arr: 2024-11-25 04:24:22+00:00 dep: 2024-11-25 05:34:22+00:00 
7 --> break / None / [24.10725, 120.63624] / arr: 2024-11-25 04:24:22+00:00 dep: 2024-11-25 05:34:22+00:00 
	stop_time_arrival_from_trip_start: 7:59:07
	stop_time_departure_from_trip_start: 7:59:07
	~ movement time: 2:24:45 ~
8 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 07:59:07+00:00 dep: 2024-11-25 07:59:07+00:00 

calculating routes for tour: 10 / vehicle: isuzu_5 / stops: 13 / cost: 3626 / distance: 274327 / duration: 28165
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:37:05+00:00 
	stop_time_arrival_from_trip_start: 0:40:53
	stop_time_departure_from_trip_start: 0:50:53
	~ movement time: 0:40:53 ~
1 --> c000073 / 肯德基-桃園經國餐廳 / [25.01499, 121.30609] / arr: 2024-11-25 01:17:58+00:00 dep: 2024-11-25 01:27:58+00:00 
	stop_time_arrival_from_trip_start: 1:04:38
	stop_time_departure_from_trip_start: 1:14:38
	~ movement time: 0:13:45 ~
2 --> c000059 / 肯德基-桃園台茂餐廳 / [25.05292, 121.28768] / arr: 2024-11-25 01:41:43+00:00 dep: 2024-11-25 01:51:43+00:00 
	stop_time_arrival_from_trip_start: 1:40:03
	stop_time_departure_from_trip_start: 1:45:03
	~ movement time: 0:25:25 ~
3 --> c000034 / 肯德基-中壢環中東餐廳 / [24.96236, 121.25531] / arr: 2024-11-25 02:17:08+00:00 dep: 2024-11-25 02:22:08+00:00 
	stop_time_arrival_from_trip_start: 1:53:55
	stop_time_departure_from_trip_start: 2:03:55
	~ movement time: 0:08:52 ~
4 --> c000075 / 肯德基-中壢中和餐廳 / [24.95413, 121.22565] / arr: 2024-11-25 02:31:00+00:00 dep: 2024-11-25 02:41:00+00:00 
	stop_time_arrival_from_trip_start: 2:20:37
	stop_time_departure_from_trip_start: 2:30:37
	~ movement time: 0:16:42 ~
5 --> c000027 / 肯德基-楊梅中山餐廳 / [24.90889, 121.16696] / arr: 2024-11-25 02:57:42+00:00 dep: 2024-11-25 03:07:42+00:00 
	stop_time_arrival_from_trip_start: 2:35:54
	stop_time_departure_from_trip_start: 2:40:54
	~ movement time: 0:05:17 ~
6 --> c000146 / 肯德基-楊梅大成餐廳 / [24.9104, 121.14567] / arr: 2024-11-25 03:12:59+00:00 dep: 2024-11-25 03:17:59+00:00 
	stop_time_arrival_from_trip_start: 2:55:05
	stop_time_departure_from_trip_start: 3:00:05
	~ movement time: 0:14:11 ~
7 --> c000050 / 肯德基-中壢民族餐廳 / [24.95739, 121.20469] / arr: 2024-11-25 03:32:10+00:00 dep: 2024-11-25 03:37:10+00:00 
	stop_time_arrival_from_trip_start: 3:42:23
	stop_time_departure_from_trip_start: 4:47:23
	~ movement time: 0:42:18 ~
8 --> c000030 / 肯德基-苗栗頭份餐廳 / [24.69083, 120.91315] / arr: 2024-11-25 04:19:28+00:00 dep: 2024-11-25 05:24:28+00:00 
8 --> break / None / [24.69083, 120.91315] / arr: 2024-11-25 04:19:28+00:00 dep: 2024-11-25 05:24:28+00:00 
	stop_time_arrival_from_trip_start: 5:12:07
	stop_time_departure_from_trip_start: 5:22:07
	~ movement time: 0:24:44 ~
9 --> c000089 / 肯德基-苗栗中正餐廳 / [24.55175, 120.81604] / arr: 2024-11-25 05:49:12+00:00 dep: 2024-11-25 05:59:12+00:00 
	stop_time_arrival_from_trip_start: 6:18:59
	stop_time_departure_from_trip_start: 6:28:59
	~ movement time: 0:56:52 ~
10 --> c000029 / 肯德基-龍潭北龍餐廳 / [24.86839, 121.21836] / arr: 2024-11-25 06:56:04+00:00 dep: 2024-11-25 07:06:04+00:00 
	stop_time_arrival_from_trip_start: 7:12:47
	stop_time_departure_from_trip_start: 7:22:47
	~ movement time: 0:43:48 ~
11 --> c000025 / 肯德基-新莊中港餐廳 / [25.0447, 121.45266] / arr: 2024-11-25 07:49:52+00:00 dep: 2024-11-25 07:59:52+00:00 
	stop_time_arrival_from_trip_start: 7:49:25
	stop_time_departure_from_trip_start: 7:49:25
	~ movement time: 0:26:38 ~
12 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:26:30+00:00 dep: 2024-11-25 08:26:30+00:00 

calculating routes for tour: 11 / vehicle: mitsubishi_9 / stops: 4 / cost: 5484 / distance: 479141 / duration: 27210
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:23:45+00:00 
	stop_time_arrival_from_trip_start: 1:36:20
	stop_time_departure_from_trip_start: 1:46:20
	~ movement time: 1:36:20 ~
1 --> c000009 / 肯德基-嘉義垂楊餐廳 / [23.47376, 120.44832] / arr: 2024-11-25 02:00:05+00:00 dep: 2024-11-25 02:10:05+00:00 
	stop_time_arrival_from_trip_start: 3:26:15
	stop_time_departure_from_trip_start: 4:36:15
	~ movement time: 1:39:55 ~
2 --> c000087 / 肯德基-南投埔里餐廳 / [23.96371, 120.96889] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
2 --> break / None / [23.96371, 120.96889] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 7:33:30
	stop_time_departure_from_trip_start: 7:33:30
	~ movement time: 2:57:15 ~
3 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 07:57:15+00:00 dep: 2024-11-25 07:57:15+00:00 

calculating routes for tour: 12 / vehicle: isuzu_10 / stops: 8 / cost: 3145 / distance: 182177 / duration: 24739
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:52:33+00:00 
	stop_time_arrival_from_trip_start: 2:06:31
	stop_time_departure_from_trip_start: 2:16:31
	~ movement time: 2:06:31 ~
1 --> c000033 / 肯德基-宜蘭新興餐廳 / [24.75614, 121.75809] / arr: 2024-11-25 02:59:04+00:00 dep: 2024-11-25 03:09:04+00:00 
	stop_time_arrival_from_trip_start: 2:18:31
	stop_time_departure_from_trip_start: 2:23:31
	~ movement time: 0:02:00 ~
2 --> c000152 / 肯德基-宜蘭舊城餐廳 / [24.75487, 121.75482] / arr: 2024-11-25 03:11:04+00:00 dep: 2024-11-25 03:16:04+00:00 
	stop_time_arrival_from_trip_start: 2:25:41
	stop_time_departure_from_trip_start: 2:30:41
	~ movement time: 0:02:10 ~
3 --> c000028 / 肯德基-宜蘭家樂福餐廳 / [24.75405, 121.74993] / arr: 2024-11-25 03:18:14+00:00 dep: 2024-11-25 03:23:14+00:00 
	stop_time_arrival_from_trip_start: 2:45:34
	stop_time_departure_from_trip_start: 2:55:34
	~ movement time: 0:14:53 ~
4 --> c000143 / 肯德基-羅東興東餐廳 / [24.67959, 121.769] / arr: 2024-11-25 03:38:07+00:00 dep: 2024-11-25 03:48:07+00:00 
	stop_time_arrival_from_trip_start: 2:57:27
	stop_time_departure_from_trip_start: 4:07:27
	~ movement time: 0:01:53 ~
5 --> c000053 / 肯德基-宜蘭羅東餐廳 / [24.67627, 121.76674] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
5 --> break / None / [24.67627, 121.76674] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 6:36:24
	stop_time_departure_from_trip_start: 6:41:24
	~ movement time: 2:28:57 ~
6 --> c000138 / 肯德基-三重三和餐廳 / [25.0363, 121.55691] / arr: 2024-11-25 07:28:57+00:00 dep: 2024-11-25 07:33:57+00:00 
	stop_time_arrival_from_trip_start: 6:52:19
	stop_time_departure_from_trip_start: 6:52:19
	~ movement time: 0:10:55 ~
7 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 07:44:52+00:00 dep: 2024-11-25 07:44:52+00:00 

calculating routes for tour: 13 / vehicle: isuzu_9 / stops: 13 / cost: 2446 / distance: 65476 / duration: 17726
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 0:24:06
	stop_time_departure_from_trip_start: 0:34:06
	~ movement time: 0:24:06 ~
1 --> c000107 / 肯德基-泰山明志餐廳 / [25.05904, 121.43136] / arr: 2024-11-25 05:24:06+00:00 dep: 2024-11-25 05:34:06+00:00 
	stop_time_arrival_from_trip_start: 0:50:50
	stop_time_departure_from_trip_start: 1:00:50
	~ movement time: 0:16:44 ~
2 --> c000051 / 肯德基-林口文化餐廳 / [25.06991, 121.37173] / arr: 2024-11-25 05:50:50+00:00 dep: 2024-11-25 06:00:50+00:00 
	stop_time_arrival_from_trip_start: 1:08:08
	stop_time_departure_from_trip_start: 1:13:08
	~ movement time: 0:07:18 ~
3 --> c000060 / 肯德基-林口復興餐廳 / [25.05909, 121.36743] / arr: 2024-11-25 06:08:08+00:00 dep: 2024-11-25 06:13:08+00:00 
	stop_time_arrival_from_trip_start: 1:31:31
	stop_time_departure_from_trip_start: 1:36:31
	~ movement time: 0:18:23 ~
4 --> c000068 / 肯德基-新莊民安餐廳 / [25.02345, 121.42558] / arr: 2024-11-25 06:31:31+00:00 dep: 2024-11-25 06:36:31+00:00 
	stop_time_arrival_from_trip_start: 1:41:18
	stop_time_departure_from_trip_start: 1:46:18
	~ movement time: 0:04:47 ~
5 --> c000134 / 肯德基-新莊輔大餐廳 / [25.03231, 121.43346] / arr: 2024-11-25 06:41:18+00:00 dep: 2024-11-25 06:46:18+00:00 
	stop_time_arrival_from_trip_start: 1:58:05
	stop_time_departure_from_trip_start: 2:03:05
	~ movement time: 0:11:47 ~
6 --> c000100 / 肯德基-樹林中山餐廳 / [24.99192, 121.4237] / arr: 2024-11-25 06:58:05+00:00 dep: 2024-11-25 07:03:05+00:00 
	stop_time_arrival_from_trip_start: 2:13:53
	stop_time_departure_from_trip_start: 2:23:53
	~ movement time: 0:10:48 ~
7 --> c000007 / 肯德基-土城裕民餐廳 / [24.98545, 121.45267] / arr: 2024-11-25 07:13:53+00:00 dep: 2024-11-25 07:23:53+00:00 
	stop_time_arrival_from_trip_start: 2:27:55
	stop_time_departure_from_trip_start: 2:37:55
	~ movement time: 0:04:02 ~
8 --> c000115 / 肯德基-土城金城餐廳 / [24.98584, 121.46398] / arr: 2024-11-25 07:27:55+00:00 dep: 2024-11-25 07:37:55+00:00 
	stop_time_arrival_from_trip_start: 2:38:08
	stop_time_departure_from_trip_start: 2:48:08
	~ movement time: 0:00:13 ~
9 --> c000017 / 肯德基-台北土城餐廳 / [24.98616, 121.46479] / arr: 2024-11-25 07:38:08+00:00 dep: 2024-11-25 07:48:08+00:00 
	stop_time_arrival_from_trip_start: 2:58:52
	stop_time_departure_from_trip_start: 3:08:52
	~ movement time: 0:10:44 ~
10 --> c000129 / 肯德基-板橋中山二餐廳 / [25.00961, 121.46117] / arr: 2024-11-25 07:58:52+00:00 dep: 2024-11-25 08:08:52+00:00 
	stop_time_arrival_from_trip_start: 3:16:32
	stop_time_departure_from_trip_start: 3:26:32
	~ movement time: 0:07:40 ~
11 --> c000091 / 肯德基-板橋新埔餐廳 / [25.02277, 121.46726] / arr: 2024-11-25 08:16:32+00:00 dep: 2024-11-25 08:26:32+00:00 
	stop_time_arrival_from_trip_start: 3:55:26
	stop_time_departure_from_trip_start: 3:55:26
	~ movement time: 0:28:54 ~
12 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:55:26+00:00 dep: 2024-11-25 08:55:26+00:00 

calculating routes for tour: 14 / vehicle: isuzu_1 / stops: 10 / cost: 2605 / distance: 103219 / duration: 17957
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 0:26:46
	stop_time_departure_from_trip_start: 0:31:46
	~ movement time: 0:26:46 ~
1 --> c000014 / 肯德基-淡水竹圍餐廳 / [25.14038, 121.45975] / arr: 2024-11-25 05:26:46+00:00 dep: 2024-11-25 05:31:46+00:00 
	stop_time_arrival_from_trip_start: 0:38:48
	stop_time_departure_from_trip_start: 0:43:48
	~ movement time: 0:07:02 ~
2 --> c000132 / 肯德基-淡水中山二餐廳 / [25.16965, 121.44437] / arr: 2024-11-25 05:38:48+00:00 dep: 2024-11-25 05:43:48+00:00 
	stop_time_arrival_from_trip_start: 0:48:35
	stop_time_departure_from_trip_start: 0:58:35
	~ movement time: 0:04:47 ~
3 --> c000101 / 肯德基-淡水中山餐廳 / [25.17742, 121.44318] / arr: 2024-11-25 05:48:35+00:00 dep: 2024-11-25 05:58:35+00:00 
	stop_time_arrival_from_trip_start: 2:00:35
	stop_time_departure_from_trip_start: 2:05:35
	~ movement time: 1:02:00 ~
4 --> c000106 / 肯德基-桃園中正餐廳 / [24.99061, 121.31294] / arr: 2024-11-25 07:00:35+00:00 dep: 2024-11-25 07:05:35+00:00 
	stop_time_arrival_from_trip_start: 2:12:19
	stop_time_departure_from_trip_start: 2:17:19
	~ movement time: 0:06:44 ~
5 --> c000092 / 肯德基-桃園中山餐廳 / [24.99077, 121.2904] / arr: 2024-11-25 07:12:19+00:00 dep: 2024-11-25 07:17:19+00:00 
	stop_time_arrival_from_trip_start: 2:24:10
	stop_time_departure_from_trip_start: 2:29:10
	~ movement time: 0:06:51 ~
6 --> c000042 / 肯德基-桃園大興西餐廳 / [25.01052, 121.2969] / arr: 2024-11-25 07:24:10+00:00 dep: 2024-11-25 07:29:10+00:00 
	stop_time_arrival_from_trip_start: 2:40:07
	stop_time_departure_from_trip_start: 2:45:07
	~ movement time: 0:10:57 ~
7 --> c000136 / 肯德基-桃園桃鶯餐廳 / [24.98354, 121.31872] / arr: 2024-11-25 07:40:07+00:00 dep: 2024-11-25 07:45:07+00:00 
	stop_time_arrival_from_trip_start: 3:05:11
	stop_time_departure_from_trip_start: 3:10:11
	~ movement time: 0:20:04 ~
8 --> c000110 / 肯德基-三峽北大餐廳 / [24.94458, 121.37405] / arr: 2024-11-25 08:05:11+00:00 dep: 2024-11-25 08:10:11+00:00 
	stop_time_arrival_from_trip_start: 3:59:17
	stop_time_departure_from_trip_start: 3:59:17
	~ movement time: 0:49:06 ~
9 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:59:17+00:00 dep: 2024-11-25 08:59:17+00:00 

calculating routes for tour: 15 / vehicle: isuzu_7 / stops: 6 / cost: 2824 / distance: 161714 / duration: 17509
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 1:16:31
	stop_time_departure_from_trip_start: 1:21:31
	~ movement time: 1:16:31 ~
1 --> c000076 / 肯德基-新竹竹北餐廳 / [24.82645, 121.01085] / arr: 2024-11-25 06:16:31+00:00 dep: 2024-11-25 06:21:31+00:00 
	stop_time_arrival_from_trip_start: 1:30:42
	stop_time_departure_from_trip_start: 1:35:42
	~ movement time: 0:09:11 ~
2 --> c000128 / 肯德基-新竹光復餐廳 / [24.78667, 121.01074] / arr: 2024-11-25 06:30:42+00:00 dep: 2024-11-25 06:35:42+00:00 
	stop_time_arrival_from_trip_start: 2:19:56
	stop_time_departure_from_trip_start: 2:29:56
	~ movement time: 0:44:14 ~
3 --> c000147 / 肯德基-桃園中山餐廳 / [24.97461, 121.26382] / arr: 2024-11-25 07:19:56+00:00 dep: 2024-11-25 07:29:56+00:00 
	stop_time_arrival_from_trip_start: 2:45:17
	stop_time_departure_from_trip_start: 2:50:17
	~ movement time: 0:15:21 ~
4 --> c000072 / 肯德基-桃園八德餐廳 / [24.95411, 121.29861] / arr: 2024-11-25 07:45:17+00:00 dep: 2024-11-25 07:50:17+00:00 
	stop_time_arrival_from_trip_start: 3:51:49
	stop_time_departure_from_trip_start: 3:51:49
	~ movement time: 1:01:32 ~
5 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:51:49+00:00 dep: 2024-11-25 08:51:49+00:00 

calculating routes for tour: 16 / vehicle: isuzu_4 / stops: 8 / cost: 2874 / distance: 170875 / duration: 17894
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
0 --> break / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 1:19:23
	stop_time_departure_from_trip_start: 1:29:23
	~ movement time: 1:19:23 ~
1 --> c000145 / 肯德基-新竹清大餐廳 / [24.79592, 120.99814] / arr: 2024-11-25 06:19:23+00:00 dep: 2024-11-25 06:29:23+00:00 
	stop_time_arrival_from_trip_start: 1:33:02
	stop_time_departure_from_trip_start: 1:38:02
	~ movement time: 0:03:39 ~
2 --> c000026 / 肯德基-新竹亞太餐廳 / [24.80531, 120.9862] / arr: 2024-11-25 06:33:02+00:00 dep: 2024-11-25 06:38:02+00:00 
	stop_time_arrival_from_trip_start: 1:43:31
	stop_time_departure_from_trip_start: 1:53:31
	~ movement time: 0:05:29 ~
3 --> c000031 / 肯德基-新竹民生餐廳 / [24.81355, 120.97438] / arr: 2024-11-25 06:43:31+00:00 dep: 2024-11-25 06:53:31+00:00 
	stop_time_arrival_from_trip_start: 2:04:49
	stop_time_departure_from_trip_start: 2:09:49
	~ movement time: 0:11:18 ~
4 --> c000126 / 肯德基-竹北自強餐廳 / [24.81657, 121.02569] / arr: 2024-11-25 07:04:49+00:00 dep: 2024-11-25 07:09:49+00:00 
	stop_time_arrival_from_trip_start: 2:25:23
	stop_time_departure_from_trip_start: 2:30:23
	~ movement time: 0:15:34 ~
5 --> c000096 / 肯德基-新竹竹東餐廳 / [24.7428, 121.08422] / arr: 2024-11-25 07:25:23+00:00 dep: 2024-11-25 07:30:23+00:00 
	stop_time_arrival_from_trip_start: 3:39:44
	stop_time_departure_from_trip_start: 3:44:44
	~ movement time: 1:09:21 ~
6 --> c000016 / 肯德基-台北三越餐廳 / [25.04663, 121.51537] / arr: 2024-11-25 08:39:44+00:00 dep: 2024-11-25 08:44:44+00:00 
	stop_time_arrival_from_trip_start: 3:58:14
	stop_time_departure_from_trip_start: 3:58:14
	~ movement time: 0:13:30 ~
7 --> arrival / None / [25.0633628527129, 121.5517443657892] / arr: 2024-11-25 08:58:14+00:00 dep: 2024-11-25 08:58:14+00:00 

calculating routes for tour: 17 / vehicle: mitsubishi_10 / stops: 8 / cost: 4226 / distance: 262563 / duration: 22852
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:32:03+00:00 
	stop_time_arrival_from_trip_start: 0:27:57
	stop_time_departure_from_trip_start: 0:37:57
	~ movement time: 0:27:57 ~
1 --> c000139 / 肯德基-高雄後昌餐廳 / [22.71883, 120.2918] / arr: 2024-11-25 01:00:00+00:00 dep: 2024-11-25 01:10:00+00:00 
	stop_time_arrival_from_trip_start: 0:57:03
	stop_time_departure_from_trip_start: 1:02:03
	~ movement time: 0:19:06 ~
2 --> c000012 / 肯德基-高雄岡山餐廳 / [22.79388, 120.29578] / arr: 2024-11-25 01:29:06+00:00 dep: 2024-11-25 01:34:06+00:00 
	stop_time_arrival_from_trip_start: 2:21:13
	stop_time_departure_from_trip_start: 2:31:13
	~ movement time: 1:19:10 ~
3 --> c000005 / 肯德基-嘉義忠孝餐廳 / [23.49499, 120.45175] / arr: 2024-11-25 02:53:16+00:00 dep: 2024-11-25 03:03:16+00:00 
	stop_time_arrival_from_trip_start: 4:02:08
	stop_time_departure_from_trip_start: 4:12:08
	~ movement time: 1:30:55 ~
4 --> c000111 / 肯德基-屏東自由餐廳 / [22.68354, 120.48985] / arr: 2024-11-25 04:34:11+00:00 dep: 2024-11-25 04:44:11+00:00 
	stop_time_arrival_from_trip_start: 4:17:31
	stop_time_departure_from_trip_start: 5:27:31
	~ movement time: 0:05:23 ~
5 --> c000083 / 肯德基-屏東逢甲餐廳 / [22.67053, 120.48713] / arr: 2024-11-25 04:49:34+00:00 dep: 2024-11-25 05:59:34+00:00 
5 --> break / None / [22.67053, 120.48713] / arr: 2024-11-25 04:49:34+00:00 dep: 2024-11-25 05:59:34+00:00 
	stop_time_arrival_from_trip_start: 5:51:16
	stop_time_departure_from_trip_start: 6:01:16
	~ movement time: 0:23:45 ~
6 --> c000019 / 肯德基-鳳山中山餐廳 / [22.62448, 120.35702] / arr: 2024-11-25 06:23:19+00:00 dep: 2024-11-25 06:33:19+00:00 
	stop_time_arrival_from_trip_start: 6:20:52
	stop_time_departure_from_trip_start: 6:20:52
	~ movement time: 0:19:36 ~
7 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 06:52:55+00:00 dep: 2024-11-25 06:52:55+00:00 

calculating routes for tour: 18 / vehicle: mitsubishi_5 / stops: 7 / cost: 5116 / distance: 402640 / duration: 27593
	stop_time_arrival_from_trip_start: 0
	stop_time_departure_from_trip_start: 0
0 --> departure / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 00:00:00+00:00 dep: 2024-11-25 00:11:57+00:00 
	stop_time_arrival_from_trip_start: 1:35:58
	stop_time_departure_from_trip_start: 1:45:58
	~ movement time: 1:35:58 ~
1 --> c000065 / 肯德基-嘉義中興餐廳 / [23.4795, 120.42925] / arr: 2024-11-25 01:47:55+00:00 dep: 2024-11-25 01:57:55+00:00 
	stop_time_arrival_from_trip_start: 2:49:55
	stop_time_departure_from_trip_start: 2:59:55
	~ movement time: 1:03:57 ~
2 --> c000131 / 肯德基-南投南崗餐廳 / [23.91154, 120.67872] / arr: 2024-11-25 03:01:52+00:00 dep: 2024-11-25 03:11:52+00:00 
	stop_time_arrival_from_trip_start: 3:38:03
	stop_time_departure_from_trip_start: 4:48:03
	~ movement time: 0:38:08 ~
3 --> c000105 / 肯德基-斗六民生餐廳 / [23.70126, 120.53708] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
3 --> break / None / [23.70126, 120.53708] / arr: 2024-11-25 03:50:00+00:00 dep: 2024-11-25 05:00:00+00:00 
	stop_time_arrival_from_trip_start: 5:08:27
	stop_time_departure_from_trip_start: 5:18:27
	~ movement time: 0:20:24 ~
4 --> c000095 / 肯德基-雲林虎尾餐廳 / [23.70955, 120.43659] / arr: 2024-11-25 05:20:24+00:00 dep: 2024-11-25 05:30:24+00:00 
	stop_time_arrival_from_trip_start: 6:25:08
	stop_time_departure_from_trip_start: 6:35:08
	~ movement time: 1:06:41 ~
5 --> c000121 / 肯德基-台南善化餐廳 / [23.12865, 120.2929] / arr: 2024-11-25 06:37:05+00:00 dep: 2024-11-25 06:47:05+00:00 
	stop_time_arrival_from_trip_start: 7:39:53
	stop_time_departure_from_trip_start: 7:39:53
	~ movement time: 1:04:45 ~
6 --> arrival / None / [22.570109085287, 120.3416894676074] / arr: 2024-11-25 07:51:50+00:00 dep: 2024-11-25 07:51:50+00:00 
In [7]:
folium.LayerControl(collapsed=True, hideSingleBase=True).add_to(m)
m.fit_bounds(bounds)
m.save('here_tour_planning_v3_result_map.html')
m
Out[7]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [ ]: